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 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作