gpt4 book ai didi

php - 可以在运行之前检查 imagecreatefromjpeg 是否会导致内存耗尽 fatal error 吗?

转载 作者:可可西里 更新时间:2023-11-01 00:11:01 25 4
gpt4 key购买 nike

我已经对此进行了一些搜索,并且我知道无法从耗尽的内存 fatal error 中恢复。我有一个运行 imagecreatefromjpeg 的脚本。我 try catch 异常,尝试使用 @ 运行该函数,然后检查返回值是 null 还是 false,我尝试使用 'die()' 运行它。什么都不管用。所以我无法从中“恢复”。

那么有没有可能在我开始之前就预料到呢?是否可以检查 jpeg 的未压缩大小然后优雅地死去?我想按照“图片 $image 太大无法处理。您需要手动创建缩略图”的方式向我的用户发送消息。

我的共享主机不允许我将内存大小增加到 64mb 以上,所以这不是一个选项。我的代码如下...

function createthumb($section,$filename,$constrain=100)
{
$dir = "$section/thumbs_$constrain";
if(file_exists($workingdir."$section/thumbs_$constrain/$filename")) return 1;
if(!file_exists($dir)) mkdir($dir);

$src = imagecreatefromjpeg($workingdir."$section/$filename");
...

最佳答案

根据经验,您可以使用 getimagesize() 返回的像素大小:

list ($width, $height) = getimagesize($file);
$memory = $width * $height * 4; // 4 bytes per pixel

如果此数字大于预定义的限制(根据经验确定,从 32*1024*1024 开始),则不要使用 imagecreatefromjpeg() 加载它。

关于php - 可以在运行之前检查 imagecreatefromjpeg 是否会导致内存耗尽 fatal error 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6128013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com