复制图像变量 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库解决ThinkPHP 验证码Call to undefined function Thinkimagecreate()出错