==== 看你的php版本 == 對應版本進行下載 ==== 我的是64位線程安全版本
1.下載:
定義環境變量:MAGICK_HOME D:\imagtick\bin
2.dll文件
php_imagick 放到php目錄下的ext目錄下
其他dll放到php目錄下
image.png
測試:
<?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");