3.7兆的图片为何用不了imagecreatefromjpeg函数
程序员文章站
2022-06-06 13:10:03
...
3.7兆的图片为什么用不了imagecreatefromjpeg函数
图片上传生成缩略图,使用以下代码
$imgsrc='E:/123.jpg';
$w1 = getimagesize($imgsrc);
$src =imagecreatefromjpeg(imgsrc);// imagecreatefromjpeg($imgsrc);
$dst = ImageCreateTrueColor($x,$y);
ImageCopyResampled($dst,$src,0,0,0,0,$x,$y,$w1[0],$w1[1]);
imagejpeg($dst,$imgsrc,80);
当图片小于2M时是好用的,没问题。但是我上传了一个3.7兆的图片时,程序走到imagecreatefromjpeg时就会出现空白,后面的代码就不执行了。请问有没有什么办法解决此问题,或在上传时直接改变图片大小。
------解决方案--------------------
内存不足了吧?
决定 GD 是否能够正常运行的条件,不在于图片文件的大小,而在于图片的点阵数
GD 在处理图片时会先将图片在内存中按每像素8个字节的规模展开成位图
------解决方案--------------------
It's an out-of-memory issue. I don't know if there's a formula, but it seems to happen with images that are large or high-resolution. Changing the memory in php.ini might work, up to a point. After trying 768MB I gave up and use ImageMagick now.
please try use code ini_set('memory_limit','768MB') before process image.
图片上传生成缩略图,使用以下代码
$imgsrc='E:/123.jpg';
$w1 = getimagesize($imgsrc);
$src =imagecreatefromjpeg(imgsrc);// imagecreatefromjpeg($imgsrc);
$dst = ImageCreateTrueColor($x,$y);
ImageCopyResampled($dst,$src,0,0,0,0,$x,$y,$w1[0],$w1[1]);
imagejpeg($dst,$imgsrc,80);
当图片小于2M时是好用的,没问题。但是我上传了一个3.7兆的图片时,程序走到imagecreatefromjpeg时就会出现空白,后面的代码就不执行了。请问有没有什么办法解决此问题,或在上传时直接改变图片大小。
------解决方案--------------------
内存不足了吧?
决定 GD 是否能够正常运行的条件,不在于图片文件的大小,而在于图片的点阵数
GD 在处理图片时会先将图片在内存中按每像素8个字节的规模展开成位图
------解决方案--------------------
It's an out-of-memory issue. I don't know if there's a formula, but it seems to happen with images that are large or high-resolution. Changing the memory in php.ini might work, up to a point. After trying 768MB I gave up and use ImageMagick now.
please try use code ini_set('memory_limit','768MB') before process image.
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论