此扩展最适合GraphicsMagick1.4+和PHP5.1.3+版本。Gmagick应该可以使用GraphicsMagick 1.2.6之前的早期版本,但这些版本不支持某些功能和格式。GraphicsMagick的Windows版本可从GraphicsMagick网站获得。
ImageMagick和GraphicsMagick之间的区别
GraphicsMagick最初基于ImageMagick2002年11月发布的ImageMagick5.5.2(派生自ImageMagickStudioLLC),而ImageMagickStudioLLC于1999年8月从E.I.DuPontDeNemours和Company1992年开发的ImageMagick派生自ImageMagick1999年8月。除了作为“gm”命令的子命令执行的实用程序外,命令行语法和编程api与ImageMagick 5.5.2保持完全向上兼容。一个更好的问题可能是“ImageMagick与ImageMagick有何不同?”因为ImageMagick继续改变和发展它的接口,所以它们不再与早期版本完全兼容。虽然GraphicsMagick还添加了新的特性,但它确实保证了现有特征的工作方式。ImageMagick专注于添加新的功能和特性,自fork以来已经发生了几次显著的变化。
GraphicsMagick维护一个稳定的发布分支,维护一个详细的变更日志,并维护一个具有完整版本历史记录的稳定源存储库,以便控制更改,并准确描述发布之间的更改。GraphicsMagick为发布分支提供持续支持。ImageMagick没有提供这些东西。
由于GraphicsMagick更加稳定,因此花了更多的时间优化和调试其代码。
GraphicsMagick比ImageMagick小得多,并且对外部库的依赖性大大降低。例如,在FreeBSD操作系统上,GraphicsMagick的全功能安装依赖于36个库,而ImageMagick需要64个库。GraphicsMagick的安装占用空间比ImageMagick小3-5倍。
GraphicsMagick通常比ImageMagick快。简单命令的基线执行开销要低得多,GraphicsMagick在处理大型图像时也更高效。
新的发行版本、下载、源文件、 维护人员信息及变更日志等,都在此处: https://pecl.php.net/package/gmagick.
范例
The following shows some common Gmagick image operations.
Example #1 Gmagick Example
<?php
//Instantiate a new Gmagick object
$image = new Gmagick('example.jpg');
//Make thumbnail from image loaded. 0 for either axes preserves aspect ratio
$image->thumbnailimage(100, 0);
//Create a border around the image, then simulate how the image will look like as an oil painting
//Notice the chaining of mutator methods which is supported in gmagick
$image->borderimage("yellow", 8, 8)->oilpaintimage(0.3);
//Write the current image at the current state to a file
$image->write('example_thumbnail.jpg');
?>
Gmagick类
Gmagick
{
/* 方法 */
public addimage ( Gmagick $source ) : Gmagick
public addnoiseimage ( int $noise_type ) : Gmagick
public annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text ) : Gmagick
public blurimage ( float $radius , float $sigma [, int $channel ] ) : Gmagick
public borderimage ( GmagickPixel $color , int $width , int $height ) : Gmagick
public charcoalimage ( float $radius , float $sigma ) : Gmagick
public chopimage ( int $width , int $height , int $x , int $y ) : Gmagick
public clear ( void ) : Gmagick
public commentimage ( string $comment ) : Gmagick
public compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y ) : Gmagick
public __construct ([ string $filename ] )
public cropimage ( int $width , int $height , int $x , int $y ) : Gmagick
public cropthumbnailimage ( int $width , int $height ) : Gmagick
public current ( void ) : Gmagick
public cyclecolormapimage ( int $displace ) : Gmagick
public deconstructimages ( void ) : Gmagick
public despeckleimage ( void ) : Gmagick
public destroy ( void ) : bool
public drawimage ( GmagickDraw $GmagickDraw ) : Gmagick
public edgeimage ( float $radius ) : Gmagick
public embossimage ( float $radius , float $sigma ) : Gmagick
public enhanceimage ( void ) : Gmagick
public equalizeimage ( void ) : Gmagick
public flipimage ( void ) : Gmagick
public flopimage ( void ) : Gmagick
public frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel ) : Gmagick
public gammaimage ( float $gamma ) : Gmagick
public getcopyright ( void ) : string
public getfilename ( void ) : string
public getimagebackgroundcolor ( void ) : GmagickPixel
public getimageblueprimary ( void ) : array
public getimagebordercolor ( void ) : GmagickPixel
public getimagechanneldepth ( int $channel_type ) : int
public getimagecolors ( void ) : int
public getimagecolorspace ( void ) : int
public getimagecompose ( void ) : int
public getimagedelay ( void ) : int
public getimagedepth ( void ) : int
public getimagedispose ( void ) : int
public getimageextrema ( void ) : array
public getimagefilename ( void ) : string
public getimageformat ( void ) : string
public getimagegamma ( void ) : float
public getimagegreenprimary ( void ) : array
public getimageheight ( void ) : int
public getimagehistogram ( void ) : array
public getimageindex ( void ) : int
public getimageinterlacescheme ( void ) : int
public getimageiterations ( void ) : int
public getimagematte ( void ) : int
public getimagemattecolor ( void ) : GmagickPixel
public getimageprofile ( string $name ) : string
public getimageredprimary ( void ) : array
public getimagerenderingintent ( void ) : int
public getimageresolution ( void ) : array
public getimagescene ( void ) : int
public getimagesignature ( void ) : string
public getimagetype ( void ) : int
public getimageunits ( void ) : int
public getimagewhitepoint ( void ) : array
public getimagewidth ( void ) : int
public getpackagename ( void ) : string
public getquantumdepth ( void ) : array
public getreleasedate ( void ) : string
public getsamplingfactors ( void ) : array
public getsize ( void ) : array
public getversion ( void ) : array
public hasnextimage ( void ) : mixed
public haspreviousimage ( void ) : mixed
public implodeimage ( float $radius ) : mixed
public labelimage ( string $label ) : mixed
public levelimage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Gmagick::CHANNEL_DEFAULT ] ) : mixed
public magnifyimage ( void ) : mixed
public mapimage ( gmagick $gmagick , bool $dither ) : Gmagick
public medianfilterimage ( float $radius ) : void
public minifyimage ( void ) : Gmagick
public modulateimage ( float $brightness , float $saturation , float $hue ) : Gmagick
public motionblurimage ( float $radius , float $sigma , float $angle ) : Gmagick
public newimage ( int $width , int $height , string $background [, string $format ] ) : Gmagick
public nextimage ( void ) : bool
public normalizeimage ([ int $channel ] ) : Gmagick
public oilpaintimage ( float $radius ) : Gmagick
public previousimage ( void ) : bool
public profileimage ( string $name , string $profile ) : Gmagick
public quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick
public quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError ) : Gmagick
public queryfontmetrics ( GmagickDraw $draw , string $text ) : array
public queryfonts ([ string $pattern = "*" ] ) : array
public queryformats ([ string $pattern = "*" ] ) : array
public radialblurimage ( float $angle [, int $channel = Gmagick::CHANNEL_DEFAULT ] ) : Gmagick
public raiseimage ( int $width , int $height , int $x , int $y , bool $raise ) : Gmagick
public read ( string $filename ) : Gmagick
public readimage ( string $filename ) : Gmagick
public readimageblob ( string $imageContents [, string $filename ] ) : Gmagick
public readimagefile ( resource $fp [, string $filename ] ) : Gmagick
public reducenoiseimage ( float $radius ) : Gmagick
public removeimage ( void ) : Gmagick
public removeimageprofile ( string $name ) : string
public resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur ) : Gmagick
public resizeimage ( int $width , int $height , int $filter , float $blur [, bool $fit = FALSE ] ) : Gmagick
public rollimage ( int $x , int $y ) : Gmagick
public rotateimage ( mixed $color , float $degrees ) : Gmagick
public scaleimage ( int $width , int $height [, bool $fit = FALSE ] ) : Gmagick
public separateimagechannel ( int $channel ) : Gmagick
setCompressionQuality ( int $quality = 75 ) : Gmagick
public setfilename ( string $filename ) : Gmagick
public setimagebackgroundcolor ( GmagickPixel $color ) : Gmagick
public setimageblueprimary ( float $x , float $y ) : Gmagick
public setimagebordercolor ( GmagickPixel $color ) : Gmagick
public setimagechanneldepth ( int $channel , int $depth ) : Gmagick
public setimagecolorspace ( int $colorspace ) : Gmagick
public setimagecompose ( int $composite ) : Gmagick
public setimagedelay ( int $delay ) : Gmagick
public setimagedepth ( int $depth ) : Gmagick
public setimagedispose ( int $disposeType ) : Gmagick
public setimagefilename ( string $filename ) : Gmagick
public setimageformat ( string $imageFormat ) : Gmagick
public setimagegamma ( float $gamma ) : Gmagick
public setimagegreenprimary ( float $x , float $y ) : Gmagick
public setimageindex ( int $index ) : Gmagick
public setimageinterlacescheme ( int $interlace ) : Gmagick
public setimageiterations ( int $iterations ) : Gmagick
public setimageprofile ( string $name , string $profile ) : Gmagick
public setimageredprimary ( float $x , float $y ) : Gmagick
public setimagerenderingintent ( int $rendering_intent ) : Gmagick
public setimageresolution ( float $xResolution , float $yResolution ) : Gmagick
public setimagescene ( int $scene ) : Gmagick
public setimagetype ( int $imgType ) : Gmagick
public setimageunits ( int $resolution ) : Gmagick
public setimagewhitepoint ( float $x , float $y ) : Gmagick
public setsamplingfactors ( array $factors ) : Gmagick
public setsize ( int $columns , int $rows ) : Gmagick
public shearimage ( mixed $color , float $xShear , float $yShear ) : Gmagick
public solarizeimage ( int $threshold ) : Gmagick
public spreadimage ( float $radius ) : Gmagick
public stripimage ( void ) : Gmagick
public swirlimage ( float $degrees ) : Gmagick
public thumbnailimage ( int $width , int $height [, bool $fit = FALSE ] ) : Gmagick
public trimimage ( float $fuzz ) : Gmagick
public writeimage ( string $filename [, bool $all_frames = FALSE ] ) : Gmagick
}
GmagickDraw类
GmagickDraw
{
/* 方法 */
public annotate ( float $x , float $y , string $text ) : GmagickDraw
public arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed ) : GmagickDraw
public bezier ( array $coordinate_array ) : GmagickDraw
public ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : GmagickDraw
public getfillcolor ( void ) : GmagickPixel
public getfillopacity ( void ) : float
public getfont ( void ) : mixed
public getfontsize ( void ) : float
public getfontstyle ( void ) : int
public getfontweight ( void ) : int
public getstrokecolor ( void ) : GmagickPixel
public getstrokeopacity ( void ) : float
public getstrokewidth ( void ) : float
public gettextdecoration ( void ) : int
public gettextencoding ( void ) : mixed
public line ( float $sx , float $sy , float $ex , float $ey ) : GmagickDraw
public point ( float $x , float $y ) : GmagickDraw
public polygon ( array $coordinates ) : GmagickDraw
public polyline ( array $coordinate_array ) : GmagickDraw
public rectangle ( float $x1 , float $y1 , float $x2 , float $y2 ) : GmagickDraw
public rotate ( float $degrees ) : GmagickDraw
public roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry ) : GmagickDraw
public scale ( float $x , float $y ) : GmagickDraw
public setfillcolor ( mixed $color ) : GmagickDraw
public setfillopacity ( float $fill_opacity ) : GmagickDraw
public setfont ( string $font ) : GmagickDraw
public setfontsize ( float $pointsize ) : GmagickDraw
public setfontstyle ( int $style ) : GmagickDraw
public setfontweight ( int $weight ) : GmagickDraw
public setstrokecolor ( mixed $color ) : GmagickDraw
public setstrokeopacity ( float $stroke_opacity ) : GmagickDraw
public setstrokewidth ( float $width ) : GmagickDraw
public settextdecoration ( int $decoration ) : GmagickDraw
public settextencoding ( string $encoding ) : GmagickDraw
}
GmagickPixel类
GmagickPixel
{
/* 方法 */
public __construct ([ string $color ] )
public getcolor ([ bool $as_array = FALSE [, bool $normalize_array = FALSE ]] ) : mixed
public getcolorcount ( void ) : int
public getcolorvalue ( int $color ) : float
public setcolor ( string $color ) : GmagickPixel
public setcolorvalue ( int $color , float $value ) : GmagickPixel
}
