Невозможно повернуть изображение с помощью imagerotate PHP - PullRequest
0 голосов
/ 22 ноября 2011

Я продолжаю получать эту ошибку после попытки извлечь изображение из моей БД и повернуть его:

Warning: imagecreatefromstring() [function.imagecreatefromstring]: Data is not in a recognized format

Вот что я звоню, чтобы преобразовать данные BLOB-объектов обратно в изображение для вращения:

$SQL="SELECT * FROM images WHERE id={$id}";
$rh = mysql_query($SQL);

$image=mysql_result($rh,0,"image");
$source_image=imagecreatefromstring($image);

$rotate_image = imagerotate($source_image, 90, 0);

Я пропустил шаг?

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Вот что я сделал для того, чтобы все заработало:

$SQL="SELECT * FROM images WHERE id={$id}";
$rs = mysql_query($SQL);

//rotate image
$image=mysql_result($rs,0,"image");
$source_image=imagecreatefromstring($image);

$rotate_image = imagerotate($source_image, 270, 0);

ob_start();
imagejpeg($rotate_image, null, 100);
$image_bin = mysql_real_escape_string(ob_get_contents()); data.
ob_end_clean(); 
0 голосов
/ 22 ноября 2011

Рекомендую хранить данные изображения в base64. Нет проблем с хранением символов и двоичных файлов.

Тогда все просто:

<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
}
else {
    echo 'An error occurred.';
}
?>

Источник: http://php.net/manual/fr/function.imagecreatefromstring.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...