Эта тема на forum.dklab.ru


Denis: GD - как на лету создать и сохранить в файл png картинку
GD - как на лету создать и сохранить в файл png картинку???

Вообще-то я уже на лету создал через GD, можно ли как-нить теперь эту штуку сохранить прямо в файл .png???
Именно изображение.

Спасибо!
Евгений Бондарев:
Второй параметр функции imagepng позволяет вместо вывода картинки сохранить ее в файл. Что-то типа:

imagepng($img, "test.png");


А вот и ман:

The imagepng() outputs a GD image stream (image) in PNG format to standard output (usually the browser) or, if a filename is given by the filename it outputs the image to the file.

BoFFiN:
<img src=button.php?Hello>
<?

$str=$QUERY_STRING;
$im = imagecreatefrompng("button.png");
$orange = imageColorAllocate($im, 220, 210, 60);
$px = (imagesx($im)-7.5*strlen($str))/2;
imagestring($im,3,$px,9,$str,$orange);
Header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
?>

Набираю ***/button.php
Выдает: PNG  IHDRИИ":9ЙIDATxњнТA А А@АЬў3±†d№SРGзіПЂЇ­Ы и т.д.
Будто ИЕ не понимает, что это картинка, в чем трабла?
Юрий Насретдинов:
Значит это не картинка. У меня все работало. Кстати говоря, заголовок нужно обязательно выдавать - иначе он может не понять, что это картинка... Но у Вас дело в чем-то другом...
BoFFiN:
yUAC

Вот и я понять не могу в чём? Не один пример с GD не проходит... Хотя библиотека установлена..
Юрий Насретдинов:
А у Вас Денвер стоит ?
BoFFiN:
yUAC
Нет, стоит Апач 2.0.4+ ПХП 4.3.2 + Перл + ... на ВинХР
Юрий Насретдинов:
Апач 2 + WinXP еще и с PHP 4.3.2, и Вы хотите чтобы оно работало ?!?!?!
BoFFiN:
yUAC

Вах, так работает и прекрасно... :)
Только вот такая сейчас вылезла проблема...
Юрий Насретдинов:
Попробуйте что-нибудь с версией браузера своего сделать...
BoFFiN:
yUAC

Поставил Оперу 6.5
Дает просто надпись:"Картинка", пишет он так ко всем картинкам, которые не может отобразить..
Юрий Насретдинов:
Ну тогда не знаю. Может, вы где-нибудь перед <? поставили "\n" - конец строки ???
BoFFiN:
yUAC

А это разве на что-то влияет?
Юрий Насретдинов:
BoFFiN:
А что нам говорит эксперимент ? (c) Евгений Бондарев
BoFFiN:
yUAC

Эксперимент говорит, что всё осталось по-прежнему... :(
Юрий Насретдинов:
BoFFiN:
Значит уберите символ конца строки после <?... Ну или попробуйте сначала сохранять картинку в файл, и потом делать Header("Location: на эту картинку"); и все должно быть ok. Это если ничего не помогает. Чтобы не возникал вопрос, как сохранять картинку в файл, то я скажу сразу, что это второй атрибут у imagepng()...
BoFFiN:
yUAC

Значит уберите символ конца строки после <?...

Это я делал, говорю же: "Эксперимент говорит, что всё осталось по-прежнему... "


Ну или попробуйте сначала сохранять картинку в файл, и потом делать Header("Location: на эту картинку"); и все должно быть ok.
Так всё прекрасно пахает, а в чём может быть трабла? Почему на лету не генирирует?
Юрий Насретдинов:
Потому что скорее всего у кого-то руки кривые. Я Вам предложил вполне приемлемое решение задачи - создаете изображение с каким-нибудь именем, "скармливаете" его браузеру и все.
BoFFiN:
yUAC

А у кого-то слишком прямые мозги.... :))))
Кстати, пример один к одному сдул с книги Д.Котерова, которого считаю одним из самых авторитеных программеров в России. :)
Юрий Насретдинов:
Кстати, пример один к одному сдул с книги Д.Котерова
Хехе :)... А это разве не нарушение авторских прав ?
которого считаю одним из самых авторитеных программеров в России.
Согласен. Только немного уточню - web-программеров...

А вообще говоря все же попробуйте мой метод. Всегда есть выход из любой ситуации. Пусть даже он не всегда очень прямой, но ведь выход !!!

Эта тема на forum.dklab.ru