dongweishi2028 2013-01-16 11:02
浏览 32

imagemagick不同的输出,相同的代码,不同的服务器

I have the same code , same version of imagemagick but the output of the 2nd server is different. it seems lacking transparent color.

server 1: http://webninjamobile.com/portfolio/canvas/Desert_Distorded.png

server 2:

http://54.252.104.61/uploads/perspective/NLuLUfqQvPnglG82aBtd.jpg

same imagemagick version.

code

<?php
    error_reporting(E_ALL);
    $im = new Imagick('4.jpg');
    $im->setImageFormat('png');
    $d = $im->getImageGeometry();
    $w = $d['width'];  
    $h = $d['height']; 
    $im3 = new Imagick();
    $im3->newImage(1, $h, 'none','png');
    $im3->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
    $im1 = $im->clone();;
    $im1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
    $im1->setImageMatte(true);
    $im1->cropImage(0, $h, 0, 0);
    $controlPoints = array(
                        0,0, 15,15, 
                        ($w-10),0, ($w-10),0, 
                        0,$h, 25,($h-20), 
                        ($w-10),$h, ($w-10),$h 
                        );
    $im1->distortImage(Imagick::DISTORTION_BILINEAR, $controlPoints, true);
    $im2 = $im->clone();
    $im2->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
    $im2->setImageMatte(true);
    $im2->cropImage(10, $h, ($w-10), 0);
    $controlPoints2 = array(
                        0,0, 0,0, 
                        10,0,10,10, 
                        0,$h, 0,$h,
                        10,$h, 10,($h-10) 
                        );
    $im2->distortImage(Imagick::DISTORTION_BILINEAR, $controlPoints2, true); 
    $im4 = $im->clone();
    $im4->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
    $im4->setImageMatte(true);
    $im4->cropImage($w, $h,$w-100,0);
    $image = new Imagick();
    $image->addImage($im1);
    //$image->addImage($im4);
    $image->addImage($im3);
    $image->addImage($im2);
    $image->resetIterator();
    $combined = $image->appendImages(false);
    $shadow = $combined->clone(); 
    $shadow->setImageBackgroundColor( new ImagickPixel( 'black' ) ); 
    $shadow->shadowImage( 50, 3, 5, 5 ); 
    $shadow->compositeImage( $combined, Imagick::COMPOSITE_OVER, 0, 0 ); 
    $shadow->writeImage('Desert_Distorded.png');
   // echo '<img src="http://webninjamobile.com/portfolio/canvas/Desert_Distorded.png" />';
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 求帮我调试一下freefem代码
    • ¥15 matlab代码解决,怎么运行
    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
    • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
    • ¥15 用windows做服务的同志有吗
    • ¥60 求一个简单的网页(标签-安全|关键词-上传)
    • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?