==== 看你的php版本 == 对应版本进行下载 ==== 我的是64位线程安全版本
1.下载:
定义环境变量:MAGICK_HOME D:\imagtick\bin
2.dll文件
php_imagick 放到php目录下的ext目录下
其他dll放到php目录下
测试:
<?php
/*** case 1: ***/
/* ::从一张gif中创建图片:: */
/* Create a new imagick object and read in GIF */
$im = new Imagick($_SERVER['DOCUMENT_ROOT']."/timg.gif");
/* Resize all frames */
foreach ($im as $frame) {
/* 50x50 frames */
$frame->thumbnailImage(50, 50);
/* Set the virtual canvas to correct size */
$frame->setImagePage(50, 50, 0, 0);
}/* Notice writeImages instead of writeImage */
$im->writeImages($_SERVER['DOCUMENT_ROOT']."/example_small.gif", true);
//$con = file_get_contents("test.jpg");
//echo $con;
/*** case 2: ***/
$image=new Imagick();
$animation = new Imagick(); //建立一个对象。
$animation->setFormat( "gif" ); //设置它的类型。
$delay = 30; //设置播放速度。
for ($i=1; $i<52; $i++) {
$thisimage = new Imagick();
$thisimage->readImage('testgifimg/frame-'.$i.'.gif'); //我有三个图片分别叫:1.jpg,2.jpg就是要合成他们三个。
$thisimage->setFormat( "gif" ); //把他们都转成GIF格式。
$animation->addImage($thisimage); //加入到刚才建立的那个gif imagick对象之中。
$animation->setImageDelay( $delay ); //设置好播放速度。
}
header( "Content-Type: image/gif" );
$animation->writeImages("9.gif",true); //文件存储。不能使用writeImage,因为是多帧的,它会认为是多张图片
/*** case 3: 在图片上加文字 ***/
$watermark = new Imagick();
$watermark->readImage("test.jpg");
$image->compositeImage($watermark, imagick::COMPOSITE_OVER, 0, 0);
$text = new Imagick();
$text->newImage(500, 200, 'none');
$text->setImageFormat('jpg');
$draw = new ImagickDraw();
$draw->setFillColor(new ImagickPixel('#f00'));
$draw->setFontSize(50);
$draw->annotation(100, 60, 'welcome');
$text->drawImage($draw);
$image->compositeImage($text, imagick::COMPOSITE_OVER, 0, 0);
$image->writeImage ("test_2.jpg");