淘先锋技术网

首页 1 2 3 4 5 6 7
说到使用PHP处理图片,除了GD库之外,还有一款非常强大的图像处理扩展——ImageMagick。而ImageMagick的实现是依靠命令行程序的,这就为我们操纵运用提出了一定的挑战,所幸PHP提供了ImageMagick的扩展接口——Imagick。下面就来简单介绍一下Imagick的使用方法。 Imagick主要提供六个类:Imagick、ImagickDraw、ImagickPixel、ImagickPixelIterator、ImagickProgressMonitor和ImagickKernel,并且提供了以这些类组成的无限种用途,JPG转换为PNG、旋转图片、图形高斯模糊等动作均可实现。 比如我们需要将一个JPG格式的图片转换为PNG,可以如下的写: ```phpwriteImage('image.png'); ?>``` 上面的代码中我们使用了Imagick类,并且将图片对象的writeImage方法应用到图片对象上完成了转换过程。很简单吧! 下面我们继续看一下使用Imagick的例子: 旋转图片 ```phprotateImage(new ImagickPixel('#ffffff'), 45); header('Content-Type: image/jpeg'); echo $im; ?>``` 画图 ```phpnewImage(800, 600, new ImagickPixel('#C30000')); $draw = new ImagickDraw(); $draw->setFillColor(new ImagickPixel('#ffffff')); $draw->setFontSize(30); $im->annotateImage($draw, 10, 50, 0, 'Hello World'); header('Content-Type: image/jpeg'); echo $im; ?>``` 文字添加 ```phpsetBackgroundColor('#ffffff'); $im->setFont('Arial.ttf'); $im->newPseudoImage(300, 100, "caption:$text"); header('Content-Type: image/jpeg'); echo $im; ?>``` 高斯模糊 ```phpblurImage(5,3); header('Content-Type: image/jpeg'); echo $im; ?>``` 以上代码中都用到了Imagick类的对象,每次对Imagick对象的操作都会产生一个新的Imagick对象。所以在具体应用中,我们需要根据实际情况判断是否需要临时保存对象。 除此之外,Imagick还支持更多的方法和类,比如Imagick::scaleImage()(图片缩放)、ImagickDraw::arc()(绘制圆弧)等等,这需要我们按需而为地去了解。使用ImageMagick处理图片让我们摆脱了麻烦的命令行操作,便捷而强大,为我们在处理图片时带来更多的可能性。