Страница 1 из 6

Создание графики в PHP

СообщениеДобавлено: 16 сен 2007, 01:36
-=(Wak)=-
Не буду Подробно описывать что зачем а просто выложу примеры


Пример №1

Наложение текста поверх рисунка

Код: Выделить всёРазвернуть
<?php
// указываем что это рисунок
header("Content-type: image/png");

// Текст который будет наложен на рисунок
$string "Hello!";

// рисунок на который будет наложен текст
$im     imagecreatefrompng("images/button1.png");

// цвер этого текста
$orange imagecolorallocate($im22021060);

// ставим нужный размер шрифта в зависимости от размера картинки
$px     = (imagesx($im) - 7.5 strlen($string)) / 2;

// рисуем всё это безобразие !)
imagestring($im3$px9$string$orange);
imagepng($im);
imagedestroy($im);
?>


Изображение

Пример простейший и подходит допустим для кнопок на сайте.
Если вместо

$string = "Hello!";

указать это

$string = $_GET['text'];

то тогда добиться нужной фразы на картинке можно вставив следующий код в html страницу
<img src="image.php?Hello!">
это с учётом что PHP и HTML файл находятся в одной папке и код записан в image.php


Пример №2

Создание рисунка


Код: Выделить всёРазвернуть
<?php
// указываем что это рисунок
header("Content-type: image/png");

// создаём пустой рисунок с разрешением 100х200
$im imagecreatetruecolor(100200);

// сделаем несколько переменных чтоб потом указать нужный цвет
$grey imagecolorallocate($im100100100);
$black imagecolorallocate($im000);
$white imagecolorallocate($im255255255);

// делаем белый фон 
imagefilledrectangle($im00100200$white);

// текстнакартинке
$text 'Hello!';
// путь к Файлу шрифта
$font1 './arialbi.ttf';

// рисуем текст на рисунке imagettftext($im[ID рисунка], 12[размер шрифта], 0[поворот текста],  11[X положение],  12[Y положение], [цвет]$black, $font1[шрифт], $text[текст]);
imagettftext($im1201122$black $font1$text);

// показываем всё это безобразие !)
imagepng($im);
imagedestroy($im);
?>


Изображение

Этот способ лучше в нём можно использовать абсолютно любой шрифт и размер

Для тех у кого есть вопросы по поводу того что фраза тип "Нах English" отображается через одно место есть функция iconv();
Она приведет кодировку в порядок и избавит от проблемы.

$text=iconv("Windows-1251", "UTF-8", $text);

если вставить это в код после "$text = 'Hello!';" то всё будет в норме .

PS эта функция работает не у всех !если у кого то установлен Denver тотам она не работает 100% !

Возможно далее будет написан пример графического счётчика !

Re: Создание графики в PHP

СообщениеДобавлено: 16 сен 2007, 23:25
gasKnyaZb
-=(Wak)=- писал(а):PS эта функция работает не у всех !если у кого то установлен Denver тотам она не работает 100% !

Возможно далее будет написан пример графического счётчика !


Вот для тех у кого отсутствует iconv

Код: Выделить всёРазвернуть
function win2uni($winline){ 
$isoline =  convert_cyr_string($winline, "w", "i");
$uniline = "";
for ($i=0; $i < strlen($isoline); $i++){
$thischar=substr($isoline,$i,1);
$charcode=ord($thischar);
$uniline.=($charcode>175) ? "&#" . (1040+($charcode-176)). ";" : $thischar;   
}
return $uniline;
}

графика в php

СообщениеДобавлено: 04 дек 2007, 22:11
wersoo
знакомый попросил помочь, а времени нет. Никто не знает как средствами php (и какие дополнитеьно модули нужны) чтоб встраивать в страничку маленькую копию определенного размер (что-то вроде эскиза) картинки? ну и желательно не создавать новую.

Re: Создание графики в PHP

СообщениеДобавлено: 04 дек 2007, 22:28
zk
знакомый попросил помочь, а времени нет.

Ну во первых перед созданием новый темы стоит посмотреть, не существует ли такой же.

Для изменения размера картинки, т.е. создания миниатюры подойдёт следующий код (для png):
Код: Выделить всёРазвернуть
$filename = "picture.png"; //файл картинки
list($width, $height) = getimagesize($filename); //получаем размер картинки
$new_width = 64;   //задаём новый размер картинки
$new_height = 48;  //..

$image = imagecreatefrompng($filename); //открываем картинку
$image_p = imagecreatetruecolor($new_width, $new_height); //создаём новую картинку
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); //изменяем размер
imagejpeg($image_p, "image.jpg", 81); //Сохраняем новую картинку


Это приблизительный пример отражающий суть, подробности - http://php.hsdn.org/manual/ru/ref.image.php

Re: Создание графики в PHP

СообщениеДобавлено: 01 янв 2008, 21:43
Alexsandrit
Для тех у кого есть вопросы по поводу того что фраза тип "Нах English" отображается через одно место есть функция iconv();
Она приведет кодировку в порядок и избавит от проблемы.

$text=iconv("Windows-1251", "UTF-8", $text);

получается вот это:
Изображение
Стоит тор сервер.

Re: Создание графики в PHP

СообщениеДобавлено: 03 янв 2008, 10:31
BULCH
-=(Wak)=- писал(а):Не буду Подробно описывать что зачем а просто выложу примеры
Пример №1

Наложение текста поверх рисунка

Код: Выделить всёРазвернуть
<?php
// указываем что это рисунок
header("Content-type: image/png");

// Текст который будет наложен на рисунок
$string = "Hello!";

// рисунок на который будет наложен текст
$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);
?>


Изображение

Пример простейший и подходит допустим для кнопок на сайте.
Если вместо

$string = "Hello!";

указать это

$string = $_GET['text'];

то тогда добиться нужной фразы на картинке можно вставив следующий код в html страницу
<img src="image.php?Hello!">
это с учётом что PHP и HTML файл находятся в одной папке и код записан в image.php



У меня вопрос возник!
Я все сделал так но у меня неработает точнее работает на половину картинка отображается но на ней нету моего текста!( и еще как настроить где именно должен будет быть текст?


ЗЫ. работает только без $string = $_GET['text'];, а надо чтобы было с этим!!!

Заранее спасибо...

Re: Создание графики в PHP

СообщениеДобавлено: 03 янв 2008, 13:33
zk
Ну во первых не нужно таких огромных цитирований.
Вместо:
Код: Выделить всёРазвернуть
<img src="image.php?Hello!">

Надо писать:
Код: Выделить всёРазвернуть
<img src="image.php?text=Hello!">

После этого должно заработать...
Правда пример немного странный =)

Re: Создание графики в PHP

СообщениеДобавлено: 29 янв 2008, 23:40
Rostov114
BULCH писал(а): У меня вопрос возник!
Я все сделал так но у меня неработает точнее работает на половину картинка отображается но на ней нету моего текста!( и еще как настроить где именно должен будет быть текст?


ЗЫ. работает только без $string = $_GET['text'];, а надо чтобы было с этим!!!

Заранее спасибо...
Я как хоть и тупо пока в ПХП но знаю что $_GET это запрос идет к другому скрипту(точнее к файлу со скриптом). Скрипт то отдельный есть?

Вон даже написано:
$string = $_GET['text'];

то тогда добиться нужной фразы на картинке можно вставив следующий код в html страницу
<img src="image.php?Hello!">
это с учётом что PHP и HTML файл находятся в одной папке и код записан в image.php

Re: Создание графики в PHP

СообщениеДобавлено: 30 янв 2008, 15:22
DPX-Infinity
Rostov114 писал(а):Я как хоть и тупо пока в ПХП но знаю что $_GET это запрос идет к другому скрипту(точнее к файлу со скриптом). Скрипт то отдельный есть?


криво вы знаете, товарищ. $_GET[] - это параметры строки запроса к скрипту. То бишь если текст в адресной строке выглядит так: http://localhost/test.php?param=value то $_GET['param']=="value"

А это:
это с учётом что PHP и HTML файл находятся в одной папке и код записан в image.php

означает, что HTML-файл (это то, где <img src="image.php?Hello!">, кстати как уже было сказано, должно быть <img src="image.php?text=Hello!">) и скрипт, выводящий картинку должны быть в одном месте, т.к. указан относительный путь к скрипту (src="image.php?text=Hello!") - относительно HTML-файла.

Re: Создание графики в PHP

СообщениеДобавлено: 31 янв 2008, 23:58
Rostov114
DPX-Infinity писал(а):криво вы знаете, товарищ. $_GET[] - это параметры строки запроса к скрипту. То бишь если текст в адресной строке выглядит так: http://localhost/test.php?param=value то $_GET['param']=="value"
:pardon: Я тока учу PHP...так что знаниями не блещу, но уже понять в скрипте что где могу...