gpt4 book ai didi

php - 如何在 PHP 中克隆 gd 资源

转载 作者:可可西里 更新时间:2023-11-01 12:47:03 25 4
gpt4 key购买 nike

我正在寻找用 imagecreatetruecolor 或其他图像创建函数创建的 PHP 图像克隆..

正如评论中所说,不,你不能做这样简单的感情:

$copy = $original;

这是因为资源是引用,不能像标量值一样被复制。

示例:

$a = imagecreatetruecolor(10,10);
$b = $a;

var_dump($a, $b);

// resource(2, gd)

// resource(2, gd)

最佳答案

这个小函数将在保留 alpha channel (透明度)的同时克隆图像资源。

function _clone_img_resource($img) {

//Get width from image.
$w = imagesx($img);
//Get height from image.
$h = imagesy($img);
//Get the transparent color from a 256 palette image.
$trans = imagecolortransparent($img);

//If this is a true color image...
if (imageistruecolor($img)) {

$clone = imagecreatetruecolor($w, $h);
imagealphablending($clone, false);
imagesavealpha($clone, true);
}
//If this is a 256 color palette image...
else {

$clone = imagecreate($w, $h);

//If the image has transparency...
if($trans >= 0) {

$rgb = imagecolorsforindex($img, $trans);

imagesavealpha($clone, true);
$trans_index = imagecolorallocatealpha($clone, $rgb['red'], $rgb['green'], $rgb['blue'], $rgb['alpha']);
imagefill($clone, 0, 0, $trans_index);
}
}

//Create the Clone!!
imagecopy($clone, $img, 0, 0, 0, 0, $w, $h);

return $clone;
}

关于php - 如何在 PHP 中克隆 gd 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12605768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com