为什么图像的宽度和高度无法进入PHP

时间:2010-10-30 10:34:33

标签: php image amazon-s3 image-uploading

我正在将图像上传到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 );

请告诉我图像尺寸有什么问题..

问候

rahul

2 个答案:

答案 0 :(得分:2)

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

或者2.3 MB的图像被破坏或者GD无法读取的格式 - 请确保您尝试使用各种图像。

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

答案 1 :(得分:1)

请阅读此链接:PHP rebuilding images: memory usage

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