]> granicus.if.org Git - imagemagick/blobdiff - www/magick-core.html
(no commit message)
[imagemagick] / www / magick-core.html
index 64892e215475ad9448c1f56719344337d4331404..f0e24735f092a6b15b2318ede1c58d72e8c59765 100644 (file)
@@ -1,48 +1,75 @@
 \r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" \r
+  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html version="-//W3C//DTD XHTML 1.1//EN"\r
+      xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"\r
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+      xsi:schemaLocation="http://www.w3.org/1999/xhtml\r
+                          http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd">\r
 <head>\r
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
   <meta name="verify-v1" content="g222frIIxcQTrvDR3NBRUSKP3AnMNoqxOkIniCEkV7U="/>\r
-  <title>ImageMagick: MagickCore, Low-level C API for ImageMagick</title/>
+  <title>ImageMagick: MagickCore, Low-level C API for ImageMagick</title>
   <meta http-equiv="Content-Language" content="en-US"/>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
   <meta http-equiv="Reply-to" content="magick-users@imagemagick.org"/>
   <meta name="Application-name" content="ImageMagick"/>
-  <meta name="Description" content="ImageMagick® is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats (about 100) including GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF, and DPX. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.  ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you can freely use, copy, modify, and distribute. Its license is compatible with the GPL. It runs on all major operating systems.  The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite programming language. Choose from these interfaces: MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), L-Magick (Lisp), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images automagically and dynamically."/>
+  <meta name="Description" content="Use ImageMagick to convert, edit, or compose bitmap images in a variety of formats.  In addition resize, rotate, shear, distort and transform images automagically."/>
   <meta name="Application-url" content="http://www.imagemagick.org"/>
   <meta name="Generator" content="PHP"/>
-  <meta name="Keywords" content="magickcore, low-level, c, api, for, imagemagick, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Swiss, Army, Knife, Image, Processing"/>
+  <meta name="Keywords" content="magickcore, low-level, c, api, for, imagemagick, ImageMagick, ImageMagic, MagickCore, MagickWand, PerlMagick, Magick++, RMagick, PythonMagick, JMagick, TclMagick, Image, Magick, Magic, Wand, ImageMagickObject, Image, Processing, Automagically"/>
   <meta name="Rating" content="GENERAL"/>
   <meta name="Robots" content="INDEX, FOLLOW"/>
   <meta name="Generator" content="ImageMagick Studio LLC"/>
   <meta name="Author" content="ImageMagick Studio LLC"/>
   <meta name="Revisit-after" content="2 DAYS"/>
   <meta name="Resource-type" content="document"/>
-  <meta name="Copyright" content="Copyright (c) 1999-2010 ImageMagick Studio LLC"/>
+  <meta name="Copyright" content="Copyright (c) 1999-2011 ImageMagick Studio LLC"/>
   <meta name="Distribution" content="Global"/>
-  <link rel="icon" href="../images/wand.png"  sizes="32x32"/>
+  <link rel="icon" href="../images/wand.png"/>
   <link rel="shortcut icon" href="../images/wand.ico"  type="images/x-icon"/>
   <link rel="meta" type="application/rdf+xml" title="ICI" href="http://imagemagick.org/ici.rdf"/>\r
+  <link rel="stylesheet" href="http://www.google.com/cse/style/look/default.css" type="text/css" />\r
   <style type="text/css" media="all">\r
     @import url("../www/magick.css");\r
   </style>\r
+  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>\r
+  <script type="text/javascript" src="../fancybox/jquery.fancybox-1.3.4.pack.js"></script>\r
+  <link rel="stylesheet" type="text/css" href="../fancybox/jquery.fancybox-1.3.4.css" media="screen" />\r
+  <script type="text/javascript">\r
+    $(document).ready(function() {\r
+      $("a[href$=.jpg],a[href$=.png],a[href$=.gif]").fancybox({\r
+        'transitionIn'  : 'elastic',\r
+        'transitionOut' : 'elastic',\r
+        'overlayShow'   : false,\r
+        'opacity'       : true\r
+      });\r
+    });\r
+  </script>\r
 </head>\r
 \r
 <body id="www-imagemagick-org">\r
 <div class="titlebar">\r
-<a href="../index.html">\r
-  <img src="../images/script.png" alt="[ImageMagick]"\r
-  style="width: 350px; height: 60px; margin: 28px auto; float: left;" /></a>\r
-<a href="http://www.networkredux.com">\r
-  <img src="../images/networkredux.png" alt="[sponsor]"\r
-  style="margin: 45px auto; border: 0px; float: left;" /></a>\r
+<div style="margin: 17px auto; float: left;">\r
+  <script type="text/javascript">\r
+  <!--\r
+    google_ad_client = "pub-3129977114552745";\r
+    google_ad_slot = "5439289906";\r
+    google_ad_width = 728;\r
+    google_ad_height = 90;\r
+  //-->\r
+  </script>\r
+  <script type="text/javascript"\r
+    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
+  </script>\r
+</div>\r
 <a href="http://www.imagemagick.org/discourse-server/">\r
-  <img src="../images/logo.jpg" alt=""\r
-  style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
+  <img src="../images/logo.jpg"\r
+  alt="ImageMagick Logo"\r
+  style="width: 123px; height: 118px; border: 0px; float: right;" /></a>\r
 <a href="../index.html">\r
-  <img src="../images/sprite.jpg" alt=""\r
+  <img src="../images/sprite.jpg"\r
+  alt="ImageMagick Sprite"\r
   style="width: 114px; height: 118px; border: 0px; float: right;" /></a>\r
 </div>\r
 \r
@@ -61,6 +88,9 @@
 <div class="sub">
     <a title="Binary Release: MacOS X" href="../www/binary-releases.html#macosx">Mac OS X</a>
 </div>
+<div class="sub">
+    <a title="Binary Release: iOS" href="../www/binary-releases.html#iOS">iOS</a>
+</div>
 <div class="sub">
     <a title="Binary Release: Windows" href="../www/binary-releases.html#windows">Windows</a>
 </div>
     <a title="Program Interface: PerlMagick" href="../www/perl-magick.html">PerlMagick</a>
 </div>
 <div class="sub">
-    <a title="Program Interface: Magick++" href="../Magick++/">Magick++</a>
+    <a title="Program Interface: Magick++" href="../www/magick++.html">Magick++</a>
 </div>
 <div class="sep"></div>\r
 <div  class="menu">
 </div>
 <div class="sep"></div>\r
 <div class="menu">
-  <a title="Search" href="http://www.imagemagick.org/script/search.php">Search</a>
+  <a title="Search" href="../www/search.html">Search</a>
 </div>
 <div class="sep"></div>\r
 <div class="menu">
-  <a title="Site Map"href="../www/sitemap.html">Site Map</a>
+  <a title="Site Map" href="../www/sitemap.html">Site Map</a>
 </div>
 <div  class="sub">
-    <a title="Site Map: Links"href="../www/links.html">Links</a>
+  <a title="Site Map: Links" href="../www/links.html">Links</a>
 </div>
 <div class="sep"></div>\r
 <div  class="menu">
-  <a title="Sponsors" href="../www/sponsors.html">Sponsors:</a>
+  <a rel="follow" title="Sponsors" href="../www/sponsors.html">Sponsors:</a>
 
+<a href="http://www.networkredux.com">
+  <img src="../images/networkredux.png" alt="[sponsor]"
+  style="margin-top: 4px; margin-left: 4px; border: 0px; float: left;" /></a>
 <div class="sponsbox">
 <div  class="sponsor">
-   <a title="Sponsor: Notebook of repair" href="http://www.notebook-reparatur-berlin.de/">Notebook of Repair</a><!-- 2011030100025 -->
+  <a rel="follow" title="Sponsor: Web Hosting" href="http://www.micfo.com">Web Hosting</a><!-- 209901010090s golestan -->
+</div>
+<div  class="sponsor">
+  <a rel="follow" title="Sponsor: Search engine optimisation" href="http://www.seomoves.com.au">Search engine optimisation</a><!-- 201110010090s jen@seo lowprofilelinks -->
+</div>
+<div  class="sponsor">
+  <a rel="follow" title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
 </div>
 <div  class="sponsor">
-  <a title="Sponsor: Druckerei" href="http://print24.com/de/">Druckerei</a><!-- 201110010720 -->
+  <a rel="follow" title="Sponsor: Web Hosting Deals" href="http://www.webhostingdeals.org">Web Hosting Deals</a><!-- 201111010270 chee.hoa darin -->
 </div>
 <div  class="sponsor">
-  <a title="Sponsor: Image Converter" href="http://www.batchphoto.com">Image Converter</a><!-- 201103010900 Bits Coffee-->
+  <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingsecretrevealed.com">Web Hosting Secret Revealed</a><!-- 201204010540 iamchee jerry -->
 </div>
 <div  class="sponsor">
-  <a title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
+  <a rel="follow" title="Sponsor: Web Hosting Break" href="http://www.webhostingbreak.com">Web Hosting Break</a><!-- 201109010090 ian@ian-m... -->
 </div>
 <div  class="sponsor">
-  <a title="Sponsor: Webdesign Agentur" href="http://www.ventzke-partner.de">Webdesign Agentur</a><!-- 201101010480 invendio.de-->
+  <a rel="follow" title="Sponsor: Druckerei" href="http://www.allesdruck.de">Druckerei</a><!-- 201303011500 r.leo -->
 </div>
 <div  class="sponsor">
-  <a title="Sponsor: LVM Versicherung" href="http://www.neu-reich.de">LVM Versicherung</a><!-- 201101010480 -->
+  <a rel="follow" title="Sponsor: Website Hosting" href="http://www.hostreviewgeeks.com">Website Hosting</a><!-- 201110010090 alexanian media -->
 </div>
 <div  class="sponsor">
-  <a title="Sponsor: Diamonds are a Girls Best Friend" href="http://www.schmuck.org">Diamonds are a Girls Best Friend</a><!-- 201101010600 Peterssen-->
+  <a rel="follow" title="Sponsor: Hotel München" href="http://www.messehotel-erb-muenchen.de">Hotel München</a><!-- 201111010450 cerb -->
 </div>
 <div  class="sponsor">
-   <a title="Sponsor: Druckerei Online" href="http://www.allesdruck.de">Druckerei Online</a><!-- 201012011200 allesdruck.de-->
+  <a rel="follow" title="Sponsor: Best Web Hosting" href="http://webhostinggeeks.com">Best Web Hosting</a><!-- 201110010720 -->
+</div>
+<div  class="sponsor">
+  <a rel="follow" title="Sponsor: Flyer drucken" href="http://www.online-druck.biz">Flyer drucken</a><!-- 201109010900 Floeter-->
+</div>
+<div  class="sponsor">
+  <a rel="follow" title="Sponsor: Web Hosting Reviews" href="http://www.webhostingmasters.com">Web Hosting Reviews</a><!-- 201107011500 affliatelabel -->
+</div>
+<div  class="sponsor">
+  <a rel="follow" title="Sponsor: Web Hosting Ratings" href="http://webhostingrating.com">Web Hosting Ratings</a><!-- 201110010720 -->
+</div>
+<div  class="sponsor">
+   <a rel="follow" title="Sponsor: Bildbearbeitung" href="http://www.bildschliff.de">Bildbearbeitung</a><!-- 2012060100300 strait.de-->
 </div>
 </div>
 </div>
 </div>\r
 \r
 <div class="eastbar">\r
-  <script type="text/javascript">\r
-  <!--\r
-    google_ad_client = "pub-3129977114552745";\r
-    google_ad_slot = "0574824969";\r
-    google_ad_width = 160;\r
-    google_ad_height = 600;\r
-  //-->\r
-  </script>\r
-  <script type="text/javascript"\r
-    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\r
-  </script>\r
+\r
 </div>\r
 \r
 <div class="main">\r
 \r
-<p class="navigation-index"></p>
+<h1>MagickCore C API</h1>
+
+<div class="doc-section">
 
 <p>The <a href="../www/api/MagickCore/index.html">MagickCore API</a> is a low-level interface between the C programming language and the ImageMagick image processing libraries and is recommended for wizard-level programmers only.  Unlike the <a href="../www/magick-wand.html">MagickWand</a> C API which uses only a few opaque types and accessors, with MagickCore you almost exlusively access the structure members directly.  A description of the MagickCore public methods are found here:</p>
 
 <p>Here is a example program that utilizes the MagickCore API to get you started, <a href="../www/source/core.c">core.c</a>. It reads a GIF image, creates a thumbnail, and writes it to disk in the PNG image format.</p>
 
 <div class="viewport">
-<pre class="code">
   #include &lt;stdio.h>
   #include &lt;stdlib.h>
   #include &lt;string.h>
     MagickCoreTerminus();
     return(0);
   }
-</pre>
 </div>
-<p><a name="image-view"></a>Now lets perform the same contrast enhancement while taking advantage of our dual or quad-core processing system by running the algorithm in parallel utilizing wand views.  The <a href="../www/source/core/sigmoidal-contrast.c">sigmoidal-contrast.c</a> module reads an image, applies sigmoidal non-linearity contrast control, and writes the result to disk just like the previous contrast enhancement program, but now it does its work in parallel (assumes ImageMagick is built with OpenMP support).</p>
+<p><a id="image-view"></a>Now lets perform the same contrast enhancement while taking advantage of our dual or quad-core processing system by running the algorithm in parallel utilizing wand views.  The <a href="../www/source/core/sigmoidal-contrast.c">sigmoidal-contrast.c</a> module reads an image, applies sigmoidal non-linearity contrast control, and writes the result to disk just like the previous contrast enhancement program, but now it does its work in parallel (assumes ImageMagick is built with OpenMP support).</p>
 
 <div class="viewport">
-<pre class="code">
 #include &lt;stdio.h>
 #include &lt;stdlib.h>
 #include &lt;math.h>
@@ -331,15 +371,21 @@ static MagickBooleanType SigmoidalContrast(ImageView *contrast_view,
   pixels=GetImageViewAuthenticPixels(contrast_view);
   for (x=0; x &lt; (ssize_t) (extent.width-extent.x); x++)
   {
-    pixels[x].red=RoundToQuantum(SigmoidalContrast(pixels[x].red));
-    pixels[x].green=RoundToQuantum(SigmoidalContrast(pixels[x].green));
-    pixels[x].blue=RoundToQuantum(SigmoidalContrast(pixels[x].blue));
-    pixels[x].opacity=RoundToQuantum(SigmoidalContrast(pixels[x].opacity));
+    SetRedPixelComponent(pixels,RoundToQuantum(SigmoidalContrast(
+      GetRedPixelComponent(pixels)));
+    SetGreenPixelComponent(pixels,RoundToQuantum(SigmoidalContrast(
+      GetGreenPixelComponent(pixels)));
+    SetBluePixelComponent(pixels,RoundToQuantum(SigmoidalContrast(
+      GetBluePixelComponent(pixels)));
+    SetOpacityPixelComponent(pixels,RoundToQuantum(SigmoidalContrast(
+      GetOpacityPixelComponent(pixels)));
+    pixels++;
   }
   indexes=GetImageViewAuthenticIndexes(contrast_view);
   if (indexes != (IndexPacket *) NULL)
     for (x=0; x &lt; (ssize_t) (extent.width-extent.x); x++)
-      indexes[x]=(IndexPacket) RoundToQuantum(SigmoidalContrast(indexes[x]));
+      SetIndexPixelComponent(indexes+x,RoundToQuantum(SigmoidalContrast(
+        GetIndexPixelComponent(indexes+x))));
   return(MagickTrue);
 }
 
@@ -361,7 +407,7 @@ int main(int argc,char **argv)
   ExceptionType \
     severity; \
  \
-  description=GetImageViewException(view,&severity); \
+  description=GetImageViewException(view,&amp;severity); \
   (void) fprintf(stderr,"%s %s %lu %s\n",GetMagickModule(),description); \
   description=DestroyString(description); \
   exit(-1); \
@@ -419,7 +465,7 @@ int main(int argc,char **argv)
   MagickCoreTerminus();
   return(0);
 }
-</pre>
+</div>
 </div>
 \r
 </div>\r
@@ -433,7 +479,7 @@ int main(int argc,char **argv)
     <span id="linkbar-east">&nbsp;</span>\r
   </div>\r
   <div class="footer">\r
-    <span id="footer-west">&copy; 1999-2010 ImageMagick Studio LLC</span>\r
+    <span id="footer-west">&copy; 1999-2011 ImageMagick Studio LLC</span>\r
     <span id="footer-east"> <a href="http://www.imagemagick.org/script/contact.php">Contact the Wizards</a></span>\r
   </div>\r
   <div style="clear: both; margin: 0; width: 100%; "></div>\r