【问题标题】:Transparency of PHP merged image not workingPHP合并图像的透明度不起作用
【发布时间】:2012-12-25 09:02:54
【问题描述】:

我正在使用 imagecopymerge 创建图像,但覆盖在顶部的图像是 PNG,但透明部分是纯白色的。如何启用透明度?

$image = imagecreatefromjpeg($this->getFile());

    $size = getimagesize($this->getFile());  

    $watermark = imagecreatefrompng('../watermark.png');
    $watermark_width = imagesx($watermark);  
    $watermark_height = imagesy($watermark);

    $dest_x = $size[0] - $watermark_width - 10;  

    $dest_y = $size[1] - $watermark_height - 5; 

    //die($watermark_width);

    $thumb_image = imagecreatetruecolor($this->getThumbWidth(), $this->getThumbHeight());

    imagealphablending($thumb_image,true);
    imagealphablending($image,true);

    imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);  

    imagecopyresampled( $thumb_image, $image, 0, 0, 0, 0, $this->getThumbResizeWidth(), $this->getThumbResizeHeight(), $this->getWidth(), $this->getHeight() );
    imagejpeg( $thumb_image, $this->getThumbDestination(), $this->getThumbQuality() );

    imagedestroy($thumb_image);
    imagedestroy($image);

【问题讨论】:

    标签: php image png gd


    【解决方案1】:

    所以我终于找到了解决方案。它正在使用imagecopy()

    这是article,它把我推向了正确的方向。

    这花了好几个小时的研究!

    【讨论】:

      【解决方案2】:

      使用imagecolortransparent()

      阅读更多here

      编辑: 更好的解决方案在这里:

      https://stackoverflow.com/a/313103/1533203

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-23
      • 2012-10-12
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      相关资源
      最近更新 更多