почему ширина и высота изображения не могут попасть в php - PullRequest
0 голосов
/ 30 октября 2010

Я загружаю изображение на сервер s3, и по php я делаю копию этого изображения на сервере, если я загружаю изображение размером 2,3 МБ, ширина изображения не приходит, но если я загружаю изображение меньшего размера, например 26 КБ, чем оно показывает ширину изображения, чтобы можно было создать копию.

вот мой код 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 );

подскажите пожалуйста в чем проблема с размером изображения ..

С уважением

рахул

Ответы [ 2 ]

2 голосов
/ 30 октября 2010

Я могу ошибаться, но я уверен, что это проблема с памятью, которая не отображается, потому что некоторые аспекты отчетов об ошибках отключены.

Либо это, либо изображение размером 2,3 МБ повреждено, либо в формате, который GD не может прочитать - обязательно попробуйте его с различными изображениями.

Если это проблема с памятью, вот связанный вопрос.

1 голос
/ 20 мая 2014

Прочитайте эту ссылку: Восстановление изображений PHP: использование памяти

Как сказал Рики, установите предел памяти выше, если можете. Также следует понимать, что размеры важнее размера файла (так как размер файла для сжатого изображения). Когда вы открываете изображение в GD, каждый пиксель получает 3-4 байта, выделенных ему, RGB и, возможно, A. Таким образом, ваше изображение размером 4912px x 3264px должно использовать от 48,098,304 до 64,131,072 байта памяти, плюс есть дополнительная память и любая другая память, которую вы используете. скрипт использует.

...