Я пытаюсь объединить два 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
образ).
Второй — объединенный образ, неправильно загруженный.
Проблема в том, что я загружаю объединенную фотографию, потому что она загружена неправильно.
Я подозреваю, что ваша проблема в том, что прохождение $dest
Параметр не является действительным изображением.
Попробуйте что-то вроде этого после вашего imagecopy
:
ob_start();
imagepng($dest);
$image_blob = ob_get_clean();
Это должно создать изображение в переменной.
Также попробуйте добавить третий параметр PDO::PARAM_LOB
в bind
т.е.
$stmt->bindparam(":src", $image_blob, PDO::PARAM_LOB)
Вы можете прочитать больше о ЗОП Большие объекты вы должны использовать их в этом случае:
Большой обычно означает «около 4 КБ или более»
Большие объекты могут быть текстовыми или бинарными по своей природе.
Надеюсь, это поможет.
Других решений пока нет …