]> granicus.if.org Git - imagemagick/blob - www/Magick++/index.html
(no commit message)
[imagemagick] / www / Magick++ / index.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
2 <HTML>
3 <HEAD>
4         <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=ibm437">
5         <TITLE>Magick++ -- C++ API for ImageMagick</TITLE>
6         <META NAME="GENERATOR" CONTENT="StarOffice 6.0  (Solaris Sparc)">
7         <META NAME="AUTHOR" CONTENT="Bob Friesenhahn">
8         <META NAME="CREATED" CONTENT="20020805;13455306">
9         <META NAME="CHANGEDBY" CONTENT="Bob Friesenhahn">
10         <META NAME="CHANGED" CONTENT="20030528;11224400">
11         <META NAME="DESCRIPTION" CONTENT="C++ API for ImageMagick">
12 <link rel=stylesheet type=text/css href="magick.css">
13 </HEAD>
14 <BODY LANG="en-US" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" BGCOLOR="#ffffff">
15 <P ALIGN=CENTER><IMG SRC="Magick++.png" NAME="Graphic1" ALIGN=BOTTOM WIDTH=464 HEIGHT=134 BORDER=0></P>
16 <P>Magick++ is the object-oriented C++ API to the <A HREF="http://www.imagemagick.org/">ImageMagick</A>
17 image-processing library, the most comprehensive open-source image
18 processing package available. Read the latest <A HREF="http://www.imagemagick.org">NEWS</A>
19 and <A HREF="http://magick.imagemagick.org/script/changelog.php">ChangeLog</A> for Magick++. 
20 </P>
21 <P><IMG SRC="logo.png" NAME="Graphic2" ALIGN=RIGHT WIDTH=85 HEIGHT=88 BORDER=0>Magick++
22 supports an object model which is inspired by <A HREF="http://www.imagemagick.org/script/perl-magick.php">PerlMagick</A>.
23 Images support implicit reference counting so that copy constructors
24 and assignment incur almost no cost. The cost of actually copying an
25 image (if necessary) is done just before modification and this copy
26 is managed automagically by Magick++. De-referenced copies are
27 automagically deleted. The image objects support value (rather than
28 pointer) semantics so it is trivial to support multiple generations
29 of an image in memory at one time. 
30 </P>
31 <P>Magick++ provides integrated support for the <A HREF="http://www.sgi.com/tech/stl/">Standard
32 Template Library</A> (STL) so that the powerful containers available
33 (e.g. <A HREF="http://www.sgi.com/tech/stl/Deque.html">deque</A>,
34 <A HREF="http://www.sgi.com/tech/stl/Vector.html">vector</A>, <A HREF="http://www.sgi.com/tech/stl/List.html">list</A>,
35 and <A HREF="http://www.sgi.com/tech/stl/Map.html">map</A>)&nbsp; can
36 be used to write programs similar to those possible with PERL &amp;
37 PerlMagick. STL-compatible template versions of ImageMagick's
38 list-style operations are provided so that operations may be
39 performed on multiple images stored in STL containers. 
40 </P>
41 <H3>Documentation</H3>
42 <P>Detailed <A HREF="Documentation.html">documentation</A> is
43 provided for all Magick++ classes, class methods, and template
44 functions which comprise the API.  See a <a href="http://www.imagemagick.org/Magick++/tutorial/Magick++_tutorial.pdf" target="<?php echo rand()?>">  Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++.  We include the <a href="http://www.imagemagick.org/Magick++/tutorial/Magick++_tutorial.odt" target="<?php echo rand()?>">source</a> if you want to correct, enhance, or expand the tutorial.</p>
45 </P>
46 <H3>Obtaining Magick++</H3>
47 <P>Magick++ is included as part of <A HREF="../../index.html">ImageMagick</A>
48 source releases and may be retrieved via <A HREF="http://www.imagemagick.org/script/download.php">ftp</A>
49 or <A HREF="http://www.imagemagick.org/script/subversion.php">Subversion</A>.
50 </P>
51 <H3>Installation</H3>
52 <P>Once you have the Magick++ sources available, follow these detailed
53 <A HREF="Install.html">installation instructions</A> for UNIX and
54 Windows. 
55 </P>
56 <P><B><FONT SIZE=4>Usage</FONT></B> 
57 </P>
58 <P>A helper script named <I>Magick++-config</I> is installed
59 under Unix which assists with recalling compilation options required
60 to compile and link programs which use Magick++. For example, the
61 following command will compile and link the source file <I>example.cpp</I>
62 to produce the executable <I>example</I> (notice that quotes are
63 backward quotes): 
64 </P>
65 <BLOCKQUOTE><TT><FONT SIZE=2>c++ -o example example.cpp
66 `Magick++-config --cppflags --cxxflags --ldflags --libs`</FONT></TT></BLOCKQUOTE>
67 <P>Windows users may get started by manually editing a project file
68 for one of the Magick++ demo programs. 
69 </P>
70 <P><B>Please note that under Windows (and possibly the Mac) it is
71 necessary to initialize the ImageMagick library prior to using the
72 Magick++ library</B>. This initialization is performed by passing the
73 path to the ImageMagick DLLs (assumed to be in the same directory
74 as your program) to the InitializeMagick() function call. This is
75 commonly performed by providing the path to your program (argv[0]) as
76 shown in the following example: 
77 </P>
78 <BLOCKQUOTE><TT><FONT COLOR="#663366">int main( ssize_t /*argc*/, char **
79 argv)</FONT></TT> <BR><TT><FONT COLOR="#663366">{</FONT></TT> <BR><TT><FONT COLOR="#663366">&nbsp;
80 InitializeMagick(*argv);</FONT></TT></BLOCKQUOTE>
81 <P>This initialization step is not required under Unix, Linux,
82 Cygwin, or any other operating environment that supports the notion
83 of &quot;installing&quot; ImageMagick in a known location. 
84 </P>
85 <H3>Reporting Bugs</H3>
86 <P>Please report any bugs via the
87 <A HREF="http://www.imagemagick.org/discourse-server/viewforum.php?f=3">Magick++ bug tracking forum</A>.
88 Questions regarding usage should be directed to 
89 <A HREF="http://www.imagemagick.org/discourse-server/viewforum.php?f=1">Magick++ discussion forum</A>.
90 </P>
91 <H3>Related Packages</H3>
92 <P>Users who are interested in displaying their images at video game
93 rates on a wide number of platforms and graphic environments (e.g.
94 Windows, X11, BeOS, and Linux/CGI) may want to try PtcMagick,
95 which provides a simple interface between Magick++ and <A HREF="http://www.gaffer.org/ptc/">OpenPTC</A>.
96 </P>
97 </BODY>
98 </HTML>