【问题标题】:why width and height of image is not able to get in php为什么图像的宽度和高度无法进入php
【发布时间】:2011-05-02 18:40:36
【问题描述】:

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

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

问候

拉胡尔

【问题讨论】:

  • than the width of image is not coming 您的脚本可能由于内存问题而崩溃。开启error_reporting(E_ALL);一探究竟
  • @Pekka 没有内存问题我已经尝试过错误报告
  • @Rahul 到底发生了什么? $width 和 $height 能得到什么?
  • @Rahul 也可以试试ini_set('display_errors', true);
  • 他们应该是其他问题。因为我已经使用这种类型的脚本并且可以正常工作超过 2 md 图像。你能检查你的 GD 库版本吗?请使用 gd2。

标签: php image amazon-s3 image-uploading


【解决方案1】:

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

无论是这种情况,还是 2.3 MB 图像已损坏或采用 GD 无法读取的格式 - 请务必尝试使用各种图像。

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

【讨论】:

  • 我尝试了小于 1024 kb 的工作,并且 php.ini 内存限制为 160M -- 那么可能是什么问题
  • @Rahul 图像文件的物理尺寸是多少?文件大小与 JPG 无关,宽度 x 高度很重要。此外,您仍然没有告诉 what 究竟发生了什么。使用大图像可以获得什么价值?
  • 大图自带空白值
  • 大图 2.3 mb 大小为 1024x768,小图 0.9 mb 大小为 4351x3000
  • @Rahul “空白值”究竟是什么意思。有什么输出吗?如果添加echo "test"; 会发生什么?你试过我上面的ini_set 建议了吗?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多