如何在 PHP 中克隆 gd 资源

2023-12-20

我正在寻找用 PHP 创建的克隆图像imagecreatetruecolor或其他一些图像创建功能..

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

$copy = $original;

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

例子 :

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

var_dump($a, $b);

// resource(2, gd)

// resource(2, gd)

这个小函数将克隆图像资源,同时保留 Alpha 通道(透明度)。

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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 PHP 中克隆 gd 资源 的相关文章

  • Laravel 从 5.6 升级到 Laravel 6

    我有一个项目https github com javedbaloch4 Laravel Booking https github com javedbaloch4 Laravel Booking发展于Laravel 5 6现在我想将其升级到
  • 优雅地处理没有数据的 amcharts

    我想知道我的 dataProvider 是否为空 amCharts绘制时默认为null 我怎样才能动态地处理它 var chart AmCharts makeChart chartdiv theme none type serial dat
  • 单词之间没有空格的语言(例如亚洲语言)中的断词?

    我想让 MySQL 全文搜索适用于日语和中文文本以及任何其他语言 问题在于这些语言以及可能其他语言通常在单词之间没有空格 当您必须键入与文本中相同的句子时 搜索没有用 我不能只在每个字符之间添加空格 因为英语也必须有效 我想用 PHP 或
  • 如何使用 phpunit 运行单个测试方法?

    我正在努力运行一个名为testSaveAndDrop在文件中escalation EscalationGroupTest php with phpunit 我尝试了以下组合 phpunit EscalationGroupTest escal
  • 如何解压 PHP/Lumen/Laravel 的 gzip 请求?

    我收到来自第三方的 gzip 编码文本请求 1mb 所以这是有道理的 我的测试路线 router gt post testgzip function Illuminate Http Request request decompressed
  • 如何检查PHP变量是否包含非数字?

    我只是想知道检查 PHP 变量中是否有非数字的方法以及它是否也检测字符之间的空格 需要确保我的表单字段中没有添加任何奇怪的内容 提前致谢 如果您的意思是您只想要一个包含数字的值 那么您可以使用ctype digit http php net
  • 如何通过 BufferedImage 将巨大的图像加载到 Java 中?

    我想将大图像 18000 x 18000 加载到我的应用程序中 如果我使用BufferedImage与类型int rgb 我需要大约 1235mb 的堆内存来加载 这是一个非常大的内存量 最终用户可能拥有更少的内存 1GB 或更少 在我的开
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • 蛋糕控制台 2.2.1:烘焙错误

    运行 MAMP 的 OSX 机器 CakePHP 2 2 1 已正确安装和配置 这意味着当我浏览到 Index php 文件时 所有绿色条都显示出来 我已经完成了博客教程 并且正在开发我的第二个应用程序 其中脚手架已启动并运行 现在我第一次
  • 从 smarty 访问 PHP 文件的变量(本地或全局)

    我有一个 php 文件 其中包含一些本地和全局变量 例如 foo 从此文件中调用 smarty 对象 如何在不更改 PHP 文件的情况下从 smarty 脚本访问 foo Thanks 如果你有一个名为 BASE 的常量变量 并且定义如下
  • 为什么 iconv 在 php:7.4-fpm-alpine docker 中返回空字符串

    给出以下代码
  • PHP 脚本可以在终端中运行,但不能在浏览器中运行

    我正在尝试执行exec命令 但我遇到了问题 当我运行以下代码时 当我通过浏览器运行它时它不起作用 但如果我把输出 str将其复制并粘贴到终端中 它工作得很好 造成这种情况的原因是什么 我该如何解决 目前我正在运行localhost php
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 如果循环中内存超出,我可以在 for 循环中抛出异常吗?

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何处理 foreach 循环中发生
  • 如何在 PHP 中从 IP 地址/国家/地区名称查找时区 ID?

    谁能告诉我 PHP 中是否有任何方法可以从 IP 地址或国家 地区名称获取时区区域 例如 亚洲 加尔各答 描述 我正在尝试根据他 她的国家 地区设置用户时区 我从他的 IP 地址获取用户所在国家 地区 但我需要该国家 地区的时区区域 例如
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主

随机推荐

  • 如何将记录插入到sql server express数据库表中?

    我正在尝试将文本框值插入到名为的数据库表中site list The site list表包含两列id and site name id设置为自动递增 这是我正在尝试的代码 执行时没有错误 但数据未显示在表中 SqlConnection c
  • 如何验证 Google Cloud Endpoints 服务 URL 的所有权?

    我已经设置了 Google Cloud Endpoints 项目 并且可以调用 http https 请求 Endpoints 为我提供了可以使用的 MY API endpoints MY PROJECT cloud goog 域名 我正在
  • Spark Dataframe 在性能上比 Pandas Dataframe 有何优势? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 谁能解释一下 Spark Dataframes 在执行时间方面比 Pandas Dataframes 更好 我正在处理中等数量的数据并
  • didAddAnnotationViews 不适用于 MKMapView

    我一直在研究 MKMapView 并尝试了解 MKMapViewDelegate 系统的工作原理 到目前为止 我没有运气在添加当前位置标记时调用 didAddAnnotationViews 我已将我的应用程序委托设置为实现 MKMapVie
  • 导入到 .pch 文件和 .h 文件顶部?

    我是 obj c 的新手 我注意到 pch 文件用于包含整个 x code 项目中的文件 但是相同的文件也包含在一些 h 文件的顶部 例如 import 什么是如果它已经包含在 pch 文件中 是否需要在 h 文件的顶部再次导入它 预编译头
  • 了解 Laravel 5.2 上的队列和调度程序

    我正在尝试如何在 Laravel 上编写作业 根据 Laravel 文档 我创建了一个使用 mail queue 发送电子邮件的简单作业 我还添加了一个 cron 作业 该作业每分钟调用一次调度程序 而调度程序又每 5 分钟运行一次该作业
  • 显示 Scala 表达式的推断类型

    如何查看 Scala 编译器为表达式等推断的类型 我有一些具有复杂类型推断和隐式转换的代码 仅通过阅读代码很难看出发生了什么 我尝试过添加 scalacOptions in Compile Xprint types 在build sbt中
  • 关于fork和execve系统调用

    据说fork系统调用创建调用进程的克隆 然后 通常 子进程发出execve系统调用来更改其映像并运行新进程 为什么要分两步走 顺便说一句 什么是execve代表 采取两步走的原因是灵活性 在这两个步骤之间 您可以修改新执行的程序将继承的子进
  • 我们如何更改标签中的行?

    我有一个标签 在设置文本时我想更改行 例如 String str first line n Secondline JLabel label setText str 我尝试了上面的代码 但它不起作用 如何更改字符串中的行 Swing 不使用经
  • 获取自定义用户控件中声明的事件的所有事件处理程序

    我正在尝试编写一个通用函数 给出对控件 组件的引用以及在其类上声明的事件的名称 它应该能够检索 通过反射 当前为指定事件名称注册的所有事件处理程序 我遇到的第一个也是主要问题 已解决 因此您可以忽略本段 是我在 StackOverflow
  • Perl 中“0 but true”是什么意思?

    有人能解释一下 Perl 中字符串 0 but true 的确切含义吗 据我了解 它在整数比较中等于零 但在用作布尔值时计算结果为 true 它是否正确 这是语言的正常行为还是解释器中将其视为特殊情况的特殊字符串 这是语言的正常行为 引用p
  • 如何在 PHP 中从客户端设置自定义 $_SERVER 变量

    根据这篇文章 哪些 SERVER 变量是安全的 https stackoverflow com questions 6474783 which server variables are safe我见过的另一个例子是 客户端似乎能够设置自定义
  • HTML5 地理定位高度

    我正在为我正在从事的项目使用 html5 地理定位 api 纬度和经度报告正确 但高度始终返回为 空 测试设备是 Nexus 4 和 5 还有其他人遇到过类似问题吗 绝对地 这似乎是一个可能特定于浏览器的问题 由于我在 iPhone 和 A
  • gcc 生成的 x86_64 汇编代码中的 xorl %eax, %eax

    我对组装完全是个菜鸟 只是四处看看发生了什么 无论如何 我写了一个非常简单的函数 void multA double x long size long i for i 0 i
  • HTTP 的 BPF 是什么?

    定义可见here http en wikipedia org wiki Berkeley Packet Filter 候选人的答案可能是tcp and dst port 80 但是可以tcp and dst port 80保证它是HTTP流
  • Visual Studio 类图未显示关系

    当我定义类属性而不使用字段 使用 C 3 0 启用 时 类图未显示我的一对一 多关系 不过 继承在图中是可见的 有没有办法来解决这个问题 当您右键单击字段或属性时 您可以选择显示为关联或显示为集合关联
  • Flutter Android Studio 错误:无法获取未知属性“keystoreProperty”

    我是 flutter 新手 我正在尝试运行我的第一个项目 而不对演示应用程序的源代码进行任何更改 但我不断收到以下错误 Launching lib main dart on SM A115F in release mode Running
  • Rails 如何验证文件格式?

    如何验证我的文件字段的格式是否正确 我希望图像字段验证它是 png jpg jpeg 以及结尾为 flv 的 flv 还有它的结尾为 mov 的 Quicktime 以及如何创建错误消息来告知该字段无效 我的 simple form for
  • 访问cookie过期时间owin

    我正在尝试访问 Owin 上的过期时间 我正在使用以下示例 访问 Owin Cookie 身份验证的 ExpireTimeSpan 属性以通知用户登录到期 https stackoverflow com questions 27107264
  • 如何在 PHP 中克隆 gd 资源

    我正在寻找用 PHP 创建的克隆图像imagecreatetruecolor或其他一些图像创建功能 正如评论中所说 不 你不能做出像这样简单的感情 copy original 这是因为资源是引用 不能像标量值一样被复制 例子 a image