0

我正在将图像上传到 s3 服务器并通过 php 我在服务器上制作该图像的副本,如果我上传 2.3 mb 的图像而不是图像的宽度,但如果我上传的图像比它显示的 26kb 更小图像的宽度,以便能够创建副本。

这是我的 php 代码:

$s3 = new S3(awsAccessKey, awsSecretKey);

        $thumbId = uniqid();
        $thumbId .= ".jpg"; 
        $img = '';

        if($imgType == "image/jpeg"){
            $img = imagecreatefromjpeg($sourceUrl);
        }else if($imgType == "image/png"){
            $img = imagecreatefrompng($sourceUrl);
        }else if($imgType == "image/gif"){
            $img = imagecreatefromgif($sourceUrl);
        }else{
            $img = imagejpeg($sourceUrl);
        }

    echo    $width = imagesx( $img );
        echo $height = imagesy( $img );

请告诉我图像大小有什么问题..

问候

拉胡尔

4

2 回答 2

2

我可能是错的,但我很确定这是一个内存问题,由于错误报告的某些方面已关闭,因此无法显示。

要么,要么 2.3 MB 图像损坏或 GD 无法读取的格式 - 请确保您尝试使用各种图像。

如果是内存问题,这里有一个相关的问题。

于 2010-10-30T10:55:18.383 回答
1

阅读此链接:PHP 重建图像:内存使用情况

正如 riky 所说,如果可以的话,将内存限制设置得更高。还要意识到尺寸比文件大小更重要(因为文件大小适用于压缩图像)。当您在 GD 中打开图像时,每个像素都会分配 3-4 个字节,RGB 和可能的 A。因此,您的 4912px x 3264px 图像需要使用 48,098,304 到 64,131,072 字节的内存,此外还有开销和您的任何其他内存脚本正在使用。

于 2014-05-20T02:02:10.220 回答