PHP图像调整大小不起作用.是否有文件大小限制?

cst*_*ack 1 php filesize image-resizing

我正在使用一个简单的图像管理器类,以及以下代码:

<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load($target_path);
if($image->getWidth() > 500) {
    $image->resizeToWidth(500);
    echo "<p>Image Resized</p>";
} else echo "<p>Image did not need to be resized.</p>";
$image->save($target_path);
echo "<p>Image Saved</p>";
?>
Run Code Online (Sandbox Code Playgroud)

当我上传宽度为700的图像时,图像成功调整大小,但是当我上传一张非常大的图片(宽度〜= 2300)时,它不起作用,我看不到任何echo消息.

某些php图像函数是否有可能导致此问题的大小限制?

Pek*_*ica 6

您很可能达到memory_limitphp.ini中指定的设置.

添加error_reporting(E_ALL);到您的脚本,看看输出是什么.

使用phpinfo()找出当前的内存限制设置.

它有时可以改变使用ini_set("memory_limit", xyz).否则,您需要更改php.ini.

一个2300 x 2300像素图像至少会占用

2300 x 2300 x 3 = 15,870,000
Run Code Online (Sandbox Code Playgroud)

=大约16兆字节的RAM(或2300 x 2300 x 4,如果有一个alpha通道)所以我会说你需要每个脚本至少24兆字节的RAM来使这项工作运行良好.也许更多.