Php 获取未压缩的图像大小

Php 获取未压缩的图像大小,php,image,thumbnails,gd,filesize,Php,Image,Thumbnails,Gd,Filesize,我有一个小PHP脚本,可以将图像文件转换为缩略图。我拥有的上传器最大容量为100MB,我想保留它 问题是,当打开文件时,GD将其解压缩,导致文件太大,导致PHP内存不足致命错误:允许的内存大小134217728字节已耗尽,试图分配64000字节。我不想增加超过这个允许大小的内存 我不关心图像,我可以让它显示默认的缩略图,这很好。但我确实需要一种方法来捕获图像太大时imagecreatefromstringfile\u get\u contents$file生成的错误 由于生成的错误是致命的,因此

我有一个小PHP脚本,可以将图像文件转换为缩略图。我拥有的上传器最大容量为100MB,我想保留它

问题是,当打开文件时,GD将其解压缩,导致文件太大,导致PHP内存不足致命错误:允许的内存大小134217728字节已耗尽,试图分配64000字节。我不想增加超过这个允许大小的内存

我不关心图像,我可以让它显示默认的缩略图,这很好。但我确实需要一种方法来捕获图像太大时imagecreatefromstringfile\u get\u contents$file生成的错误

由于生成的错误是致命的,因此无法尝试捕获它,并且由于它在一个命令中加载它,因此我无法继续关注它以确保它没有接近极限。我需要一种方法来计算图像将有多大,然后再尝试处理它

有办法做到这一点吗?文件大小不起作用,因为它给了我压缩的大小

我的代码如下:


在重新调整大小之前是否尝试查看原始图像大小?也许将它乘以一个基于平均格式压缩的集合%

$averageJPGFileRatio = 0.55;
$orgFileSize = filesize ($newfilename) * 0.55;
在做任何工作之前看看这个

次要思想

计算如下:宽度*高度*3=文件大小 如果使用alpha通道处理图像,则3表示红色、绿色和蓝色值,请使用4而不是3。这将使您对位图大小有一个非常接近的估计。不考虑头信息,但在几个字节内可以忽略不计

$averageJPGFileRatio = 0.55;
$orgFileSize = filesize ($newfilename) * 0.55;