问题标签 [imagecreatefrompng]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 具有透明背景的PHP图像复制
我使用此代码从另一个 png 图像创建图像,默认情况下背景为黑色。我的问题是如何设置透明背景?
有没有一种简单的方法可以做到这一点?谢谢
php - 在 php 中使用 GD 函数 imagecreatefrom* 时如何防止出现“不是有效的图像文件”错误?
我正在对上传的图像使用 imagecreatefromgif / imagecreatefromjpeg / imagecreatefromjpeg 函数,当图像损坏时,有时会出现错误(例如,警告:imagecreatefromgif(): ... is not a valid GIF file)。我阅读了很多关于这个主题的帖子,但找不到“有效”的答案。
我确实尝试了以下一些方法来验证图像(如其他帖子中所建议的那样),但它们都不能在所有情况下工作。如果图像没有标头信息,则以下方法有效,但如果图像具有标头/mime 类型信息并且已损坏,则它不起作用。
或者
或者
使用 getimagesize($uploaded_image); // 如果图像无效,将返回 false 或错误。
这些情况都不适用于具有标头信息/mime 类型信息的损坏图像文件。
我想防止出现这些错误,并在可能的情况下检测图像是否没有损坏,并且可以在没有任何 imagecreatefromgif / imagecreatefromjpeg / imagecreatefromjpeg 函数的问题的情况下使用。如果损坏,我想显示一条错误消息而不是运行该功能。我正在寻找 PHP 中的解决方案。
感谢您的帮助和建议。
php - 调整大小后这张照片变得模糊
上传这张照片并调整大小后,我注意到它的质量变得有点模糊......为什么会发生这种情况?我有足够的空间,所以还有什么问题?
原来的,
调整大小后,
但是我上传的其他图片完全没有问题。为什么只发生在这张照片上?
会不会是下面的调整大小功能造成的?
php - 来自任何常用文件格式的 PHP imagecreate() PNG?
我目前有一个只接受 PNG、JPG/JPEG、GIF 图像的图像上传输入。如果文件是有效的,它会继续使用从图像创建缩略图
这很好用,但显然只适用于 png 图像。
除了使用提交的正确文件格式外,使用“imagecreatefrompng()”最合乎逻辑和最有效的方法是什么?我能想到的只是 if/else 使用多个“imagecreatefrom_ _ ()”,但这似乎不对。
此外,无论提交什么而不是我现在拥有的当前 imagejpg(),我的输出格式如何始终是 PNG。
php - 将超过 1 个图像与基础图像合并
我使用此代码合并两个图像。有人可以帮我将 2 个源图像与 1 个基础图像合并。例如。我有这些图片 base.jpg、image1.jpg、image2.jpg。我想在 base.jpg 上合并 image1.jpg 和 image2.jpg。我正在使用此代码合并两个图像。
php - Imagecreatefrompng() - 连接被重置错误
我在网站上安装了一段代码,其中包括 gd 功能。经过调试,我得出的结论是
导致服务器响应:“连接已重置”即使我将代码更改为:
发生同样的错误。我检查了 php 版本,检查了是否安装并启用了 gd 库,但一切正常。error_log 中没有任何内容。还有,文件路径没问题,文件存在,其他函数可以访问该文件(如fopen或file_get_contents),所以权限没有问题。
有人有想法吗?
编辑:该文件位于本地服务器上。
php - imagecreatefrompng() 和大小限制
我在 PHP 中使用imagecreatefrompng()函数时遇到了一些问题。
我开发了一个网站,其目标是允许用户上传他们自己的 Sprite Comics(使用从视频游戏中提取的资源制作的漫画,称为 sprites)。
我想在他们的画廊中展示他们漫画的一些缩影,所以我使用了 GD,当然还有imagecreatefrompng()。
但它会引发大图像的致命错误:
致命错误:内存不足(分配 8388608)(试图分配 4545600 字节)
即使通过ini_set()设置了“memory_limit”的值,也会出现同样的错误......
经过几个小时的研究,似乎是因为分辨率:imagecreatefrompng()无法管理超过 1 040 000 像素的图像......!
非常非常不方便,因为我不能限制用户发送的漫画的大小......
您知道解决此问题的任何提示吗?
提前感谢!
image - 尝试从给定的 PNG 图像中提取像素值
试图理解PNG格式。
考虑这个PNG图像:
图片取自这里
在 Hex Editor 中,它看起来像这样:
等效字符:
十六进制编辑器的以下屏幕截图中显示了相同的内容:
我正在尝试对该图像进行逆向工程以提取标题部分和 RGB 像素值。我在此处阅读了有关PNG的信息,到目前为止,我已经注意到有关此图像的以下内容:
IHDR 块必须首先出现。它包含:
下面我开始按顺序读取 HEX 数据:
1- 前 8 字节:这是 8 字节签名
等效地这是: %PNG 可以在 HEX 编辑器中看到
一个有效的 PNG 图像必须包含一个 IHDR 块、一个或多个 IDAT 块和一个 IEND 块。
2-块:长度
3-Chunk:Chunk 类型
哪个是 IHDR。
http://www.w3.org/TR/PNG-Chunks.html
4- 块:图像的宽度(十进制 128)
5- 块:图像的高度(十进制 68)
6-块:位深度(1字节)
7-块:颜色类型
8- 压缩方法
9-过滤方法:
10- 交错法:
11-以下数据是什么?
C6 25 AA 3E 00 00 00 C2
12——IDAT
49 44 41 54
13- 这是什么数据(IDAT 之后):
78 5E ED D4 81 06 C3 30 14 40 D1 B7 34 DD FF FF 6F B3 74 56 EA 89 12 6C 28 73 E2 AA 34 49 03 87 D6 FE D8 7B 89 BB 52 8D 3B 87 FE 01 100 80 00 0 00 02 00 40 00 00 08 00 00 01 00 20 00 00 04 00 80 00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 00 D4 5E 6A 54 4B 94 C 2C 54 4B 94 F 3E CF 9C 3F 73 71 58 5F AF 8B 79 5B EE 96 B6 47 EB F1 EA D1 CE B6 E3 75 3B E6 B9 95 8D C7 CE 03 39 C9 AF C6 33 93 7B 66 37 CF AB BF F9 C9 2F 08 80 00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 04 00 80 00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 20 00 00 20 00 00 20 00 00 20 00 00 20 00 00 01 00 20 00 00 04 00 80 00 00 10 00 00 02 00 40 00 00 08 00 00 01 00 20 00 00 8C 0 0 37 DB 96 6 00 00
14- IEND:
49 45 4E 44
15- 最后 4 个字节
这些是什么 ?
有人可以帮助我理解上面的第 11、13 和 15 点吗?像素值在哪里?图像具有(128 x 68 像素)
了解这些细节的目的:
一旦我知道了这些细节,我将生成我自己的 16 位 PNG 图像。我已经有了像素值,所以我的工作是引入标题等。
我不知道是否有软件可以执行这项工作。
更新
我现在明白由于压缩,我无法找到像素值。
我想到我可以在 OpenCV 中编写一个文件并将其保存为 png。那么现在我的直接问题是:我有一个具有灰度 16 位像素值的二进制文件。我可以在 OpenCV 中将其写为 16 位 PNG 吗?