Рисование

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
vitpanov
Сообщения: 100
Зарегистрирован: 18 сен 2005, 18:51
Откуда: Россия

Хелл всем! Народ как нарисовать картинку с помощью php?
Сомневаешься - не делай,
не сомневаешся - подумай!
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Код: Выделить всё

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im    = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px    = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>
(c) http://www.php.net/manual/ru/ref.image.php
Zvepr
Сообщения: 48
Зарегистрирован: 23 дек 2004, 14:34

Есть еще такая библиотека ImageMagic (найти по ней доку в гугле оч. просто) - так вот она уже выходит за рамки PHP и является библиотекой Unix\Linux систем. Обращаться к ней можно через командную строку. По функционалу эта библиотека вообще уделывает GD (для которой и предназначен вышеприведенный скрипт) - вообще не хуже фотошопа со всеми ее эфектами, только без интерфейса, но из минусов - 1) она достаточно трудная, 2)возможно ее на сервере 3)может не быть (хотя такое оч редко случается) 4) у сервака может быть отключена возможность работы с коммандной строкой.

Самое прикольное - этой библиотекой делать ресайзы. к примеру:
<?
`mogrify -resize 200x200 image.jpg`
?>

При этом пропорции и прочее она сохранит.
Качестов выполнения тоже оченб крутое.


Если же все таки возьмешься за GD - то совет из собственного горького опыта - используй НЕ imagecreate(), а imagecreatetruecolor() - ну и ли как то так. главное здесь - truecolor - качество нормальное получается)))
vitpanov
Сообщения: 100
Зарегистрирован: 18 сен 2005, 18:51
Откуда: Россия

Доброго всем времени суток!Люди, почему при отрисовки изображения
на дпись на русском превращается в итоге в нечто непонятное?При выводе
на английском все нормально. Далее код.

Код: Выделить всё

<?
Error_Reporting(E_ALL & ~E_NOTICE);

$data=date ('j F,D Y г.');
$data=str_replace('July','Июль',$data); ## Если без этих строчек
$data=str_replace('Wed','Среда',$data); ## то все нормально...
######################################

$visota=25;
$shirina=200;
$im=ImageCreateTrueColor($shirina,$visota);
$white=ImageColorAllocate($im,255,255,255);
$blue=ImageColorAllocate($im,0,0,64);

ImageFill($im,0,0,$blue);

ImageString($im,4,10,5,$data,$white);

Header('Content-type:image/png');
ImagePng($im);

ImageDestroy($im);

?>
Сомневаешься - не делай,
не сомневаешся - подумай!
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Попробуй кодировку задать <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
vitpanov
Сообщения: 100
Зарегистрирован: 18 сен 2005, 18:51
Откуда: Россия

Duncon,так не выйдет, потому что если поставить кодировку то выдаст это
Warning: Cannot modify header information - headers already sent
Сомневаешься - не делай,
не сомневаешся - подумай!
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

ищи у себя косяк, попробуй перегружать страницу при действии..
Аватара пользователя
Gelert
Сообщения: 61
Зарегистрирован: 27 янв 2005, 00:02
Контактная информация:

Есть враиант альтернативный, правда немного ламерский..
Во время вызова функции ImagePng() если не ошибавюсь - второй параметр - это путь, можно сохравить файл а потом его вывести - и вес будет ок
Мужчина должен уметь делать все, кроме как рожать детей и трахаться в задницу.
Аватара пользователя
Gelert
Сообщения: 61
Зарегистрирован: 27 янв 2005, 00:02
Контактная информация:

Ой.. ну я сморозил....
есть более лучший вариант:
создаешь 2 файла: В первый суешь свой заголовок и определением кодировки (настоятельно советую utf-8), а во втором файле будет вес то что связано с имагой (засунуто вес в функцию к примеру). В первом файле вызываешь функцию и все ок. Я вроде так делал и работало. Если не запашет, скажи я тогда исходники скину, т.к. уменя было похожая тема
Мужчина должен уметь делать все, кроме как рожать детей и трахаться в задницу.
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

некаких utf-ов это не наша кодировка, только windows-1251
Ответить