>백엔드 개발 >PHP 튜토리얼 > 3.7兆的图片为何用不了imagecreatefromjpeg函数

3.7兆的图片为何用不了imagecreatefromjpeg函数

WBOY
WBOY원래의
2016-06-13 12:48:05959검색

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.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.