sql — PHP сохранить изображение, созданное из imagecopy как blob

Я пытаюсь объединить два PNG изображений. Я использую imagecopy функционировать так:

imagecopy($dest, $src, $dest_x / 2 - $src_x / 2, $dest_y / 2 - $src_y / 2, 0, 0, $src_x, $src_y);

Теперь я хочу сохранить это объединенное фото как blob в моей БД, но код не работает. Мое изображение сохранено как 14Bytes объект, когда нормальный рис имеет около 100KB,

 try
{
$stmt = $user->get_db()->prepare("INSERT INTO photos(id_user, src, date) VALUES(:id_user, :src, :date)");$stmt->bindparam(":id_user", $_SESSION['user_id']);
$stmt->bindparam(":src", $dest);
$stmt->bindparam(":date", date("Y-m-d H:i:s"));
$stmt->execute();

}
catch(PDOException $e)
{
echo $e->getMessage();
}

Изображения в БД

Первый — успешно сохраненное изображение (нормальное png образ).
Второй — объединенный образ, неправильно загруженный.
Проблема в том, что я загружаю объединенную фотографию, потому что она загружена неправильно.

0

Решение

Я подозреваю, что ваша проблема в том, что прохождение $dest Параметр не является действительным изображением.

Попробуйте что-то вроде этого после вашего imagecopy:

ob_start();
imagepng($dest);
$image_blob = ob_get_clean();

Это должно создать изображение в переменной.

Также попробуйте добавить третий параметр PDO::PARAM_LOB в bindт.е.

$stmt->bindparam(":src", $image_blob, PDO::PARAM_LOB)

Вы можете прочитать больше о ЗОП Большие объекты вы должны использовать их в этом случае:

Большой обычно означает «около 4 КБ или более»

Большие объекты могут быть текстовыми или бинарными по своей природе.

Надеюсь, это поможет.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector