当前位置: 首页 > 工具软件 > MagickWand > 使用案例 >

php magicwand,PHP扩展MagickWand

甄坚白
2023-12-01

简介

MagickWand 是PHP的一个扩展程序,通过它建立起与ImageMagick的交互,进行图片的处理。它是默认的GD图象函数库的绝佳替代方案。从安全性和易用性来说,在PHP中使用MagickWand比使用命令行ImageMagick要安全快捷的多。另外 imagick也可用于PHP中作为ImageMagick的替代方案。

MagickWand 有两种形式:

1、只是建立与ImageMagick的交互,这种情况必须先安装ImageMagick,优点是扩展程序文件小(一般几百K),可以快速升级ImageMagick版本,不过WINDOWS临时目录需要特殊权限。

2、扩展程序本身包含了ImageMagick,优点是不需要额外安装ImageMagick,临时目录不需要特殊权限,但扩展程序文件比较大(一般4M以上)。

MagickWand 默认并没有在PHP的安装包里,需要去PHP网站上下载,并在PHP.INI中打开此扩展。

代码示例

// convert flower.jpg -quality 80% flower_quality.jpg

$resource = NewMagickWand();

MagickReadImage( $resource, 'small_flower.jpg' );

MagickSetFormat($resource, 'JPG');

MagickSetImageCompression($resource, MW_JPEGCompression);

MagickSetImageCompressionQuality($resource, 80.0);

header( 'Content-Type: image/gif' );

MagickEchoImageBlob( $resource );

?>

在图片上写文字:

// convert flower.jpg -font courier -fill white -pointsize 20 -annotate +50+50 Flower flower_annotate1.jpg

$resource = NewMagickWand();

$dwand = NewDrawingWand();

$pwand = NewPixelWand();

PixelSetColor($pwand, "white");

DrawSetFont($dwand, "/usr/share/fonts/default/TrueType/cour.ttf");//指定字体

DrawSetFontSize($dwand, 20);

DrawSetFillColor($dwand, $pwand);

DrawSetGravity($dwand, MW_SouthGravity);

MagickReadImage( $resource, 'small_flower.jpg' );

if( MagickAnnotateImage( $resource, $dwand, 0, 0, 0, "Flower" ) ){

header( 'Content-Type: image/gif' );

MagickEchoImageBlob( $resource );

}else{

echo MagickGetExceptionString($resource);

}

?>

裁切:

// convert flower.jpg -crop 128×128+50+50 flower_crop.jpg

$resource = NewMagickWand();

MagickReadImage( $resource, 'small_flower.jpg' );

if( MagickCropImage( $resource, 128, 128, 50, 50 ) ){

header( 'Content-Type: image/gif' );

MagickEchoImageBlob( $resource );

}else{

echo MagickGetExceptionString($resource);

}

?>

旋转图片:

// convert flower.jpg -rotate 45 flower_rotate45.jpg

$resource = NewMagickWand();

MagickReadImage( $resource, 'small_flower.jpg' );

MagickRotateImage( $resource, null, 45 );

header( 'Content-Type: image/gif' );

MagickEchoImageBlob( $resource );

?>

调整大小:

// convert flower_original.jpg -resize 640×480 flower.jpg

$resource = NewMagickWand();

MagickReadImage( $resource, 'small_flower.jpg' );

MagickResizeImage( $resource, 100, 100, MW_QuadraticFilter, 1.0 );

header( 'Content-Type: image/gif' );

MagickEchoImageBlob( $resource );

?>

锐化:

// convert flower.jpg -unsharp 1.5×1.0+1.5+0.02 flower_unsharp.jpg

$resource = NewMagickWand();

MagickReadImage( $resource, 'small_flower.jpg' );

MagickUnsharpMaskImage( $resource, 1.5, 1.0, 1.5, 0.02 );

header( 'Content-Type: image/gif' );

MagickEchoImageBlob( $resource );

?>

另附:

 类似资料: