Sophie

Sophie

distrib > Mandriva > mes5 > x86_64 > by-pkgid > 0d81a008159b90d5a3553d84969a208b > files > 40

graphicsmagick-doc-1.2.5-2.3mdvmes5.2.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=ibm437">
	<TITLE>Magick++ Documentation</TITLE>
	<META NAME="GENERATOR" CONTENT="OpenOffice.org 1.0  (Win32)">
	<META NAME="AUTHOR" CONTENT="Bob Friesenhahn">
	<META NAME="CREATED" CONTENT="20020805;14591273">
	<META NAME="CHANGEDBY" CONTENT="Bob Friesenhahn">
	<META NAME="CHANGED" CONTENT="20020805;15041750">
	<META NAME="DESCRIPTION" CONTENT="C++ API for GraphicsMagick">
	<STYLE>
	<!--
		TD P { color: #000000 }
		P { color: #000000 }
		BLOCKQUOTE { color: #000000 }
		A:link { color: #0000ee }
		A:visited { color: #551a8b }
	-->
	</STYLE>
</HEAD>
<BODY LANG="en-US" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" BGCOLOR="#ffffff">
<P ALIGN=CENTER><IMG SRC="Magick++.png" NAME="Graphic1" ALIGN=BOTTOM WIDTH=464 HEIGHT=134 BORDER=0></P>
<P>Magick++ provides a simple C++ API to the GraphicsMagick image
processing library which supports reading and writing a huge number
of image formats as well as supporting a broad spectrum of
traditional image processing operations. The GraphicsMagick C API is
complex and the data structures are currently not documented.
Magick++ provides access to most of the features available from the C
API but in a simple object-oriented and well-documented framework. 
</P>
<P>Magick++ is intended to support commercial-grade application
development. In order to avoid possible conflicts with the user's
application, all symbols contained in Magick++ (included by the
header <TT><FONT COLOR="#663366">&lt;Magick++.h&gt;</FONT></TT>) are
scoped to the <SPAN LANG="en-US">namespace</SPAN> <I>Magick</I>.
Symbols from the GraphicsMagick C library are imported under the
<I>MagickLib</I> namespace to avoid possible conflicts and
GraphicsMagick macros are only included within the Magick++
implementation so they won't impact the user's application. 
</P>
<P>The core class in Magick++ is the <A HREF="Image.html">Image</A>
class. The Image class provides methods to manipulate a single image
frame (e.g. a JPEG image). Standard Template Library (STL)<SPAN LANG="en-US">
compatible </SPAN><A HREF="STL.html">algorithms and function objects</A>
are provided in order to manipulate multiple image frames or to read
and write file formats which support multiple image frames (e.g. GIF
animations, MPEG animations, and Postscript files). 
</P>
<P>The Image class supports reference-counted memory management which
supports the semantics of an intrinsic variable type (e.g. 'int')
with an extremely efficient <TT>operator = </TT>and copy constructor
(only a pointer is assigned) while ensuring that the image data is
replicated as required so that it the image may be modified without
impacting earlier generations. Since the Image class manages heap
memory internally, images are best allocated via C++ automatic
(stack-based) memory allocation. This support allows most programs
using Magick++ to be written without using any pointers, simplifying
the implementation and avoiding the risks of using pointers. When a
program uses automatic memory allocation to allocate Magick++ images,
that aspect of the program becomes naturally exception-safe and
thread-safe. 
</P>
<P>The image class uses a number of supportive classes in order to
specify arguments. Colors are specified via the <A HREF="Color.html">Color</A>
class. Colors specified in X11-style string form are implicitly
converted to the Color class. Geometry arguments (those specifying
width, height, and/or x and y offset) are specified via the <A HREF="Geometry.html">Geometry</A>
class. Similar to the Color class, geometries specified as an
X11-style string are implicitly converted to the Geometry class. Two
dimensional drawable objects are specified via the <A HREF="Drawable.html">Drawable</A>
class. Drawable objects may be provided as a single object or as a
list of objects to be rendered using the current image options.
Montage options (a montage is a rendered grid of thumbnails in one
image) are specified via the <A HREF="Montage.html">Montage</A>
class. 
</P>
<P>Errors are reported using C++ exceptions derived from the
<A HREF="Exception.html">Exception</A> class, which is itself derived
from the standard C++ exception class. Exceptions are reported
synchronous with the operation and are caught by the first matching
<I>try</I> block as the stack is unraveled. This allows a clean
coding style in which multiple related Magick++ commands may be
executed with errors handled as a unit rather than line-by-line.
Since the Image object provides reference-counted memory management,
unreferenced images on the stack are automatically cleaned up,
avoiding the potential for memory leaks. 
</P>
<P STYLE="margin-bottom: 0cm">For ease of access, the documentation
for the available user-level classes is available via the following
table. <BR><BR>
</P>
<P ALIGN=CENTER STYLE="margin-bottom: 0cm"><B>Magick++ User-Level
Classes</B></P>
<CENTER>
	<TABLE WIDTH=90% BORDER=1 CELLPADDING=2 CELLSPACING=3>
		<COL WIDTH=35*>
		<COL WIDTH=221*>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="Blob.html">Blob</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>Binary Large OBject container.</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="CoderInfo.html">CoderInfo</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>Report information about supported image formats (use with
				<A HREF="STL.html#coderInfoList">coderInfoList</A>())&nbsp;</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="Color.html">Color</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>Color specification.</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="Drawable.html">Drawable</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>Drawable shape (for input to 'draw').</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="Exception.html">Exception</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>C++ exception objects.</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="Geometry.html">Geometry</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>Geometry specification.</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="Image.html">Image</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>Image frame.&nbsp; This is the primary object in Magick++.</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="Montage.html">Montage</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>Montage options for montageImages().</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="Pixels.html">Pixels</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>Low-level access to image pixels.</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="STL.html">STL</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>STL algorithms and function objects for operating on
				containers of image frames.</P>
			</TD>
		</TR>
		<TR>
			<TD WIDTH=14%>
				<P><A HREF="TypeMetric.html">TypeMetric</A></P>
			</TD>
			<TD WIDTH=86%>
				<P>Container for font type metrics (use with
				<A HREF="Image.html#fontTypeMetrics">Image::fontTypeMetrics</A>).&nbsp;</P>
			</TD>
		</TR>
	</TABLE>
</CENTER>
<BLOCKQUOTE STYLE="margin-left: 0cm"><BR><BR>
</BLOCKQUOTE>
</BODY>
</HTML>