php - imagecreatetruecolor因1536X1962而失败,但尺寸较小

标签 php image-processing error-handling

我缩小了问题范围以显示文件的大小。我不知道什么时候文件很大。如何捕捉错误。一个1.1mg的文件会导致imagecreatetruecolor保释,但在处理688k文件时会很好地适应。

谢谢

最佳答案

据我在PHP/GD文档中所知道的,此函数创建一个24位RGB图像,其中黑色为默认颜色。用作参数的宽度和高度是像素尺寸的整数。因此,要计算尺寸,您可以按如下所示将它们相乘以确定是否要怪原始图像(压缩前):

1536 * 1962 = 3,013,632 pixels
3,013,632 * 24 = 72,327,168 bits
72,327,168 / 8 = 9,040,896 bytes

1024 * 768 = 786,432 pixels
786,432 * 24 = 18,874,368 bits
18,874,368 / 8 = 2,359,296 bytes

在我看来,此功能以1.1 MB的大小会引起问题,这似乎很不寻常,但是也许您指的是诸如jpg之类的压缩图像,其中实际的原始大小可能大得多。 (如您所见,1024x768的“小”图像仍远远超过1.1 MB原始数据。)

关于php - imagecreatetruecolor因1536X1962而失败,但尺寸较小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2222777/

相关文章:

python - 准确的二值图像分类

c - Linux 中使用 MMX 进行图像处理

matlab 如何从 warp() 函数中提取二维图像数据?

error-handling - 如何对 symfony4 中的 api 请求应用验证

java - 错误未报告异常 ClassNotFoundException;必须被捕获或宣布被扔出

angular - 使用异步/等待时,错误处理程序返回默认值

javascript - 除了 appendTo 之外的 jQuery 命令

javascript - 单击 map 外部时传单缩放 map

php - 在PHP中有人可以解释克隆vs指针引用吗?

php - 无效的项目内容目录错误