Работа с изображениями

alphaed

Guest
Работа с изображениями

Доброго времени.

Сново про работу с изображениями. 5ый день бьюсь на скриптиком (на php до этого не писал, только измениял под свои нужду готовое, но тут понадобилось).
подскажите - когда изображения (хранящиеся в базе) от туда берутся в переменную и чуть нижу написать echo $переменая, в браузере выведется абракадабра (которая и является изображением), но с этой переменной не работаю функции типа getimagesize... Но в переменную можно считать (уже не и базы) изображение так что после echo $переменая в браузере будет надпись Resource 8. и уже с такой переменной работают функции работы с изображениями, но в таком виде ее хрен запихаешь обратно в базу.
Целый день сегодня роюсь во всевозможных форумах, факах, руководствая www.php.net... но так и не нашел как содержимое этой переменную сделать "текстовой абракадаброй".

Сразу оговорюсь, что предложения типа "нефиг хранить картинки в базе", а также "идиты в фак", не помогут. Первое не от меня зависит, второе уже и так 5 дней там, решился спросить только после того как зашел окончательно в тупик.

Спасибо за помощь авансом (если эта помощь поможет)
 

SiMM

Новичок
[m]ImageCreateFromString[/m]
[m]ImageSX[/m]
[m]ImageSY[/m]
А вообще - неплохо бы описать задачу. Ибо походу решается она явно через заднее кирильцо.
 

Фанат

oncle terrible
Команда форума
SiMM, ему, вроде, не создать, а наоборот - записать проблема
 

alphaed

Guest
задачка грубо - нужно пробежаться по всей большой таблице, выдернуть из data blob, далее поизвести над ним несколько операций (уменьшение, цвет..) и запихать обратно в thumb

$result=@mysql_query("SELECT data FROM $userstable WHERE id = $params");
$row = mysql_fetch_array($result,MYSQL_BOTH);
$src = $row["data"];
$t_img_name = tempnam ("/tmp", "timg");
$t_img = fopen($t_img_name, "w");

fwrite($t_img, $src);

fclose($t_img);
$size = getimagesize($t_img_name);

........................ бла бла бла...............


в конце концов приходим к переменной $idest
которую можно вывести на экран вот так
imagejpeg($idest);

(соответственно если в место последней строчки написать
echo $idest в браузере будет написано Resource...)

И в базу, в blob поле эту переменную не запихаеш.

Собственно вопрос как преобразовать ее в "арбакадабру"?

-~{}~ 28.06.05 21:42:

Автор оригинала: Фанат
SiMM, ему, вроде, не создать, а наоборот - записать проблема
Да да записать обратно.
 

SiMM

Новичок
Один вопрос - а зачем thumb'ы класть в базу?
Вариант 1. [m]imagejpeg[/m]. Читать про второй параметр.
Вариант 2. [m]outcontrol[/m]
 

alphaed

Guest
Автор оригинала: SiMM
Один вопрос - а зачем thumb'ы класть в базу?
Вариант 1. [m]imagejpeg[/m]. Читать про второй параметр.
Вариант 2. [m]outcontrol[/m]
Если я правильно понял тебя вариант 1 - сложить thumbы в файлы - этого в данной конкретной задаче сделать не могу. Мне их надо хранить в базе.
По поводу варианта 2 чаго-то не вкурил пока.
 

SiMM

Новичок
> Если я правильно понял тебя вариант 1 - сложить thumbы в файлы - этого в данной конкретной задаче сделать не могу. Мне их надо хранить в базе.
Если оставить вопрос целесообразности хранения в базе - я никак не могу понять, что может помешать прочесть полученный файл и положить его содержимое в базу?

> По поводу варианта 2 чаго-то не вкурил пока.
Запускаешь [m]ob_start[/m] перед imagejpeg, затем получаешь в переменную то, что тебе нужно, [m]ob_get_contents[/m]ом
 

alphaed

Guest
Все равно записывает в базу не картинку а "Resource..."
Может все таки кто подскажет как трансформировать "Resource..." в абракадабру.
 

Фанат

oncle terrible
Команда форума
Может все таки кто подскажет как трансформировать "Resource..." в абракадабру.
гениальная фраза =)

-~{}~ 29.06.05 13:52:

alphaed
скажи пожалуйста, ты русский язык понимаешь?
 

alphaed

Guest
Да вроде бы.

А что из данной фразы (в контексте темы) не понятно.

"Resource..." - переменная в которой находиться картинка "в формате" image resource.
а мне этот image resource нужно положить в blob в базе. но если класть "напрямую" - mysql_query("INSERT INTO db_pics (thumb) VALUES ('$idest')"); в ячейке thumb положиться не сама картинка в "текстовом варианте" (абракадабре) на только (не сколько я понял) фраза "Resource..."
 

Фанат

oncle terrible
Команда форума
А что из данной фразы (в контексте темы) не понятно.
Милый.
Где я написал, что фраза непонятная? Я написал - гениальная. Если эти слова для тебя - синонимы, то у тебя действительно, с русским полная беда.

Не заметно, что ты понимаешь по-русски.
Поскольку тебе на вопрос
как трансформировать "Resource..." в абракадабру.
УЖЕ ОТВЕТИЛИ.
причём дали два варианта.

Если человек что-то спросил, ему ответили, а он снова прашивает то же самое, то есть большие основания сомневаться в его умственном здоровье.
может быть, ты отдохнёшь, возьмёшь отпуск, съездишь на море, а потом вернёшься, и прочтёшь ответ на твой вопрос, который тебе УЖЕ дали, и сделаешь то, что тебе надо. а?
 

alphaed

Guest
по поводу варианта 2
Если я правильно понял это должно работать
ob_start();
ImageJPEG($idest);
$image_buffer = ob_get_contents();
ob_end_clean();

mysql_query("INSERT INTO db_pics (thumb) VALUES ('$image_buffer')");

и складывать картинку из $idest в ячейку thumb.

Но не работает:-(((
По поводу отпуска наверное Фанат прав. Но перед тем как это сделать мне нужно добить этот х.. скрипт.
 

StUV

Rotaredom
1. что сделает echo $image_buffer; ?
2. какой тип поля thunb в базе ?
3. это о чем:
> и складывать картинку из $idest в ячейку thumb
?
 

alphaed

Guest
Автор оригинала: StUV
1. что сделает echo $image_buffer; ?
2. какой тип поля thunb в базе ?
3. это о чем:
> и складывать картинку из $idest в ячейку thumb
?
1. выдаст картинку в "абракадабре" (собственно что я и спрашивал в данной теме).
2. тип mediumblob
3. это уже наверное к другому врачу - точно такой же запрос из другого файла работает (с такими же входными данными), а тут не работает.
Если после запроса
mysql_query("INSERT INTO db_pics (thumb) VALUES ('$image_buffer')");
вставить
echo mysql_error();
браузер пишет
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 '' at line 1
 

alphaed

Guest
все допер, всем спасибо, сорри что отвлек внимание.
 
Сверху