复制图像变量GD库

发布于 2024-09-05 09:21:19 字数 189 浏览 4 评论 0原文

在 PHP 中复制图像变量的最简单方法是什么?

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

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

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

What is the easiest way to duplicate an image variable in PHP.

Normally you can simply do $varnew = $varold.

But with a GD library variable if I did the above and then edited $varnew then $varold would be effected too.

Obviously one way would be to reopen the file or to make a new image and copy it into it. Is there an easier way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱本泡沫多脆弱 2024-09-12 09:21:19

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

The reason your try didn't work is because the variable only stores a handle (a memory pointer) to the GD image. Both $varnew and $varold will still store the same pointer, thus pointing to the exact same image in memory. You have to use imagecopy or, maybe worse, open the image from file again.

只怪假的太真实 2024-09-12 09:21:19

使用这个:

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;

  }

Use This:

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;

  }
祁梦 2024-09-12 09:21:19

您可以使用 imagecopy

You can use imagecopy

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文