>백엔드 개발 >PHP 튜토리얼 >Fatal error: Uncaught exception 'ImagickException' with message 'Compositing ima

Fatal error: Uncaught exception 'ImagickException' with message 'Compositing ima

WBOY
WBOY원래의
2016-06-23 13:49:421665검색

$image_name4=$Process.'4.gif';$inimg3=$Process.'1.jpg';$animation3 = new Imagick();		$animation3->setFormat("gif");		$i=0;		$image4 = new Imagick(realpath($image_name4));		$image4 = $image4->coalesceImages();foreach($image4 as $frame){ 			if(!is_file($inimg3)){				echo  '水印图像不存在';			}			$img = new Imagick();			$img->readImageBlob($frame);			$draw = new ImagickDraw();			$draw->color(0,0,imagick::PAINT_FLOODFILL);			$water = new Imagick(realpath($inimg3));			$draw->composite($water->getImageCompose(),0,0,320, 256,$water);			$img->drawImage($draw);                        $animation3->addImage( $img );			$animation3->setImageDelay( $img->getImageDelay() );//			$draw->destroy();                        $water->destroy();			$img->destroy();}$animation3->writeImages($Process.''.$id.'X.gif', true);//生成3X		$animation3->destroy();


在Linux 下报错,本地win7是好的:Uncaught exception 'ImagickException' with message 'Compositing image failed' 。
ImagickDraw->composite(40, 0, 0, 320, 256, Object(Imagick)) #1 {main} thrown in



回复讨论(解决方案)

目测应该是你的linux下的php中没有imagick扩展。

linux上有这个。。版本也升到最新了

不是  new Imagick();不行,而是单独 
 $draw->composite($water->getImageCompose(),0,0,320, 256,$water); 这一句执行不了

getImageCompose()
这个方法有返回值?

getImageCompose()
这个方法有返回值?

有的 这个设置gif延迟的,值为40.

最后还是放弃了composite方法  以后看怎么样能正确使用 再更新下吧

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.