1

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

<?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>";
?>

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

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

4

3 回答 3

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

= 大约 16 兆字节的 RAM(如果有 alpha 通道,则为 2300 x 2300 x 4)所以我想说每个脚本至少需要 24 兆字节的 RAM 才能正常工作。也许更多。

于 2010-07-23T15:26:17.800 回答
1

有上传文件大小限制;你可以在你的 php.ini 中设置它:

upload_max_filesize
post_max_size
于 2010-07-23T15:26:53.137 回答
1

检查您的错误日志。您可能超出了内存限制(memory_limit在 ini 设置中)。尝试添加ini_set('memory_limit', '32M');到文件的顶部。

并直接回答您的问题,内部功能没有大小限制......

于 2010-07-23T15:27:21.667 回答