Как сохранить изображение, созданное функцией PHP imagecopymerge, в базе данных mysql - PullRequest
0 голосов
/ 13 июня 2011

Я пытаюсь наложить серию изображений поверх друг друга и сохранить результат в базе данных mysql в поле большого двоичного объекта. Я использую синтаксис codeigniter 'active-record', чтобы сделать это. Я сталкиваюсь со следующей ошибкой:

Error Number: 1064</p><p>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id #48 WHERE `id` = '5'' at line 1
UPDATE `users_thumbnails` SET `thumbnail` = Resource id #48 WHERE `id` = '5'    

Может кто-нибудь объяснить, что я делаю не так? Спасибо!

$base = imagecreatefromjpeg('application/assets/images/vel1_bg.jpg');
    foreach($array as $key => $value){
                $item = imagecreatefrompng('application/assets/images/items/item' . $value[0] . '.png');
                list($width, $height, $type, $attr) = getimagesize('application/assets/images/items/item'. $value[0] . '.png');
                imagecopymerge($base, 
                            $item,
                            $value[1],
                            $value[2],
                            0,
                            0,
                            $width,
                            $height,
                            100);
                //imagedestroy($item);
            }

    $data = array('thumbnail' => $base);
    $this->db->where('fbid', $this->session->userdata('id'));
    $this->db->update('users_thumbnails', $data);

1 Ответ

3 голосов
/ 13 июня 2011

использовать

  ...
 ob_start();
 imagepng($base);
 $baseimg = ob_get_clean();
 $data = array('thumbnail' => $baseimg);
  ...

иначе $ base не преобразуется автоматически в изображение, когда вы передаете его в запрос, оно просто преобразуется в Resource id #48

Редактировать: захватить содержимое

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