复制图像变量 GD 库

Posted

技术标签:

【中文标题】复制图像变量 GD 库【英文标题】:Duplicate a image variable GD library 【发布时间】:2010-06-15 18:15:41 【问题描述】:

php 中复制图像变量的最简单方法是什么。

通常你可以简单地做$varnew = $varold

但是如果我执行上述操作然后编辑 $varnew 然后使用 GD 库变量,那么 $varold 也会受到影响。

显然,一种方法是重新打开文件或制作新图像并将其复制到其中。有没有更简单的方法?

【问题讨论】:

【参考方案1】:

您的尝试不起作用的原因是该变量仅存储指向 GD 图像的句柄(内存指针)。 $varnew$varold 仍将存储相同的指针,从而指向内存中完全相同的图像。您必须使用imagecopy,或者更糟糕的是,再次从文件中打开图像。

【讨论】:

【参考方案2】:

使用这个:

function cloneImg($img)
    //get dimensions
    $w = imagesx($img);
    $h = imagesy($img);
     //copy process
    $copy = imagecreatetruecolor($w, $h);
    imagecopy($copy, $img, 0, 0, 0, 0, $w, $h);

    return $copy;

  

【讨论】:

这将我的 png 图像的透明部分变成了不透明的黑色。【参考方案3】:

您可以使用imagecopy

【讨论】:

以上是关于复制图像变量 GD 库的主要内容,如果未能解决你的问题,请参考以下文章

GD库imagecopyresampled()方法详解~

安装GD库解决ThinkPHP 验证码Call to undefined function Thinkimagecreate()出错

拉伸由 GD 创建的图像文本

PHP GD 图像水印质量

php图像处理 GD 库

PHP系列GD库