Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Проблема с графикой / 25 сообщений из 31, страница 1 из 2
06.06.2012, 04:16:44
    #37826920
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
 <?php   
     if (! extension_loaded('gd')) { // Проверяем установку библиотеки GD
        echo 'GD не установлено. Обратитесь к администратору вашего сайта!';
        exit;
    }
    $sOrigImg = "label.png";
    $aImgInfo = getimagesize($sOrigImg);
    if (is_array($aImgInfo) && count($aImgInfo)) {
        header ("Content-type: image/png");  <!!!!--- Ругается варом и не отображает, хотя недавно все было нормально
        $iSrcWidth = $aImgInfo[0];
        $iSrcHeight = $aImgInfo[1];
		
        $rImage = imagecreatetruecolor($iSrcWidth, $iSrcHeight); // Создаем новоео изображение
		$transparent = imagecolorallocatealpha($rImage, 0, 0, 0, 127);
		imagefill($rImage, 0, 0, $transparent); 
		imagesavealpha($rImage, true); 
        $rImage3 = imagecreatetruecolor($iSrcWidth, $iSrcHeight); // Создаем новоео изображение
		$transparent = imagecolorallocatealpha($rImage3, 0, 0, 0, 127);
		imagefill($rImage3, 0, 0, $transparent); 
		imagesavealpha($rImage3, true); 

		$rImage2 = imagecreatetruecolor($iSrcWidth, $iSrcHeight); // Создаем новоео изображение
        $rSrcImage = imagecreatefrompng($sOrigImg); //  Создаем исходное изображение
       imagecopy($rImage2, $rSrcImage, 0, 0, 0, 0, $iSrcWidth, $iSrcHeight); // Копируем полученное изображение на изображение-источник
		
 
// Create some colors
$white = imagecolorallocate($rImage, 255, 255, 255);
 

$text = 'Тест1';
$text2 = 'Тест2';
$textl=str_replace(" ","",$text);
$textl2=str_replace(" ","",$text2);
$l = strlen($textl)*12.5;
$l2 = strlen($textl2)*11;

	$black = imagecolorallocate($rImage,0,0,0);
$font = '5200.ttf';
	$font_size = 34;	
	$font_size2 = 32;	
	$xPos=0;
	$yPos=50;
	$yPos2=420;
  	imagettftext($rImage,$font_size,0,$xPos, $yPos-1,$black,$font,$text);
	imagettftext($rImage,$font_size,0,$xPos-1,$yPos,$black,$font,$text);
	imagettftext($rImage,$font_size,0,$xPos,$yPos+1,$black,$font,$text);
	imagettftext($rImage,$font_size,0,$xPos+1,$yPos,$black,$font,$text);
	imagettftext($rImage,$font_size,0,$xPos, $yPos,$white, $font, $text);
	
	imagettftext($rImage3,$font_size2,0,$xPos, $yPos2-1,$black,$font,$text2);
	imagettftext($rImage3,$font_size2,0,$xPos-1,$yPos2,$black,$font,$text2);
	imagettftext($rImage3,$font_size2,0,$xPos,$yPos2+1,$black,$font,$text2);
	imagettftext($rImage3,$font_size2,0,$xPos+1,$yPos2,$black,$font,$text2);
	imagettftext($rImage3,$font_size2,0,$xPos, $yPos2,$white, $font, $text2);

         imagecopy($rImage2, $rImage, $iSrcWidth/2-($l)   <!!!!---- извращался что бы слово было по середине, но не помогло, от части только , как сделат ьпо середине!?, 0, 0, 0, $iSrcWidth, $iSrcHeight); // Копируем полученное изображение на изображение-источник
		 
		 imagecopy($rImage2, $rImage3, $iSrcWidth/2-($l2), 0, 0, 0, $iSrcWidth, $iSrcHeight);

    imagepng($rImage2); // Выводим изображение
	//imagedestroy($rImage2);
    } else {
        echo 'Что-то не так с изобржаением!';
        exit;
    }
	?>
...
Рейтинг: 0 / 0
06.06.2012, 07:35:46
    #37826948
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
...
Рейтинг: 0 / 0
06.06.2012, 13:40:57
    #37827572
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
hemoy,
автор
Код: php
1.
header ("Content-type: image/png");  <!!!!--- Ругается варом и не отображает

Чего говорит то? Нам отсюда не видно.
...
Рейтинг: 0 / 0
06.06.2012, 13:42:27
    #37827575
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
header already sent ?)
...
Рейтинг: 0 / 0
06.06.2012, 13:45:24
    #37827584
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\bookru.ru\www\s\img.php:1) in Z:\home\bookru.ru\www\s\img.php on line 9
‰PNG IHDRёёёЁeд IDATxњмќg\GЗgчzЃгЋЮ«H±WPм]Ј‰MФ��УЊiFЌcЊcў‰=1j4±‡Ё±K¤ "‚Ђф^®ч~»ыјё„бо8ёјпЗІ;»чЫЩЩЯОNщ„a°c§зsрLeС“ЂоVa§ww·;v¬ѓZ‰лn vz-vЈґУё—[VWеЮЭ*мфZмFi§7 “ЋШЭ*мфZмFi§7 PЪ›Ънt"vЈґУh¬!u·;Ѕш§Я+w¬лnvмXЃ„v·;Ѕё$/АСYcчJ;=Йюйm§Ѓ…9ЃЋОљч?»¶`Б‚АААААА
<|ш°»µЩ±c.xўЅFi§щ·ЌтиЮгч®}6gОњЫ·oЯѕ}{Оњ9+W®ьв‹/єWњ;fўСu·;ЅђqяЛ>ейййНk”йййеее_~щew+м‘ ТЭz9-rёѕ†Т]Jм<аyњ<1пфблЩЎщЃpшрбШШШ3fфлЧЇ»фu jµzЪґi7oЮlѕ‘JҐЮјysШ°a-ущьmЫ¶]ѕ|№ѕѕЮГГcшрбsжМ™6mZS"rраБдддџ~ъ‰Б`tС5фДbсоЭ»Пћ=[^^ожж5cЖЊ9sжёєє6ҐQ*•Г† ытЛ/§NќЄЯвpєZj}mЪ№“ґZYуЌЄЫ‹ЇЬgІъшаѓ+W®xyy566¦¦¦?~ьХW_]ѕ|щвЕ‹ГВВЦ®]‹aШґiУъфйsтдЙДДDЛE¶AђuлЦнЮЅ»Ец€€€њњњпј&.\ё°xсb…BС|#ЏПККкЯї{“5G©T®\№тД‰-¶гсшммlу_ґ>њ>}ълЇїюыпїq8њ'Oћ\ѕ|yэъхѓ^№reBB‡Г4hР[·>эфУГ‡џ>}љD"Q©я/ :ќтFТКВ'-Е@юҐWS=ј™)Ж4yїЉШыщьz‡жЫЩlцИ‘#c‡цсcмX C’o®{�Стц±\"–¬МЃaГ·ПetMVЫ0§1;66VяЗК•+§_=бьЉ+ф[bbbrrr AЦЉ&/3Ѕ·SOёtйRЁ eЯѕ}эхЧG}4lШ°?ь°ybAъфйугЏ?¶¶3Ќ¦DУТТф[nЭєµrеКМММ>ш Oџ>4-88ше—_ѕpбBQQ‘‡‡ЗІeЛX,–ѕЙbСўE6l0цљйЂЪ&НлЦуттjќ!їяю»ЇЇЇV«m}Ф…
Nџ>НбpZўP(–,Yтшсгv%kЋR©|уН7'L�РZЏBЎXёpa^^ћ‰hвЮЅ{
.LIIЩёqcdd$…Bсччџ:uкЃjkk—-[vфиQ//Ї±cЗ8p`АЂWЇ^=ztLLЊZF4я–ќNyпъ›џ¬3 FVзѕYW“bЋУ”]ЄЇШyеК•цpwwїyуfкќ—№lyфцtkЭK/ё}Йw?ьЅ/Љё}6(ЈkІЪFЂЬ=гюјґР AOOПДйЧPTwзкЊєє:@ffж›oѕ™™™iаHВZUиљ6љЮkXЉ5NёtйТ„„„ҐK—6mQ*•kЧ®¬¬=zфиСЈSRRШlц7Я|ЈЯЫ·oЯхлЧїьтЛЖT•••Ќ5*%%ЏЗЏ1вбГ‡НїЫD«ХЋ9rпЮЅC† iЅ·Ѕj›@dК”)^^^?эф‰фМXлO>щD§Уµ>°kЧ®'N\ѕ|ЩЧЧ·щцЊЊЊщузWUUµ+Ys”JеИ‘#ЗЋ»}ыцхЩ”””%K–”••µ>Є9555#FЊИММtwoЯ”нsзОќ:u*qЮо’эќNyъз‘‹“џџ?tXьтХ58\ЗЁЧTЮyьаЌддdR............ Почему так выводится?
...
Рейтинг: 0 / 0
06.06.2012, 13:47:06
    #37827588
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Перед <?php не должно быть пробелов и вообще ничего.
файл не должен быть в кодировке с BOM
...
Рейтинг: 0 / 0
06.06.2012, 14:00:29
    #37827612
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Hett,

С пробелом помогло, а как отцентрировать по середине? создать текст как картинки, и потом их накладывать на середину как ватемарк или можно сразу

Код: php
1.
imagecopy($rImage2, $rImage, $iSrcWidth/2-($l), 0, 0, 0, $iSrcWidth, $iSrcHeight); // Копируем полученное изображение на изображение-источник



тут рассчитывать середину $iSrcWidth
...
Рейтинг: 0 / 0
06.06.2012, 14:06:34
    #37827631
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
рассчитайте ширину текста в пискелях
найдите разность ширины изображения и текста
рисуте текст со смещением 1/2 разности ширин от левого края
...
Рейтинг: 0 / 0
06.06.2012, 14:11:21
    #37827641
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$text = 'Тест1';
$text2 = 'Тест2';
$textl=str_replace(" ","",$text);
$textl2=str_replace(" ","",$text2);
$l = strlen($textl)*12.5;
$l2 = strlen($textl2)*11;


	$font_size = 34;	
	$font_size2 = 32;	



вот тут я чет и колдовал)

Код: php
1.
imagecopy($rImage2, $rImage, $iSrcWidth/2-($l), 0, 0, 0, $iSrcWidth, $iSrcHeight);
...
Рейтинг: 0 / 0
06.06.2012, 14:20:44
    #37827670
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
с каких пор все буквы стали одинаково ширины?
...
Рейтинг: 0 / 0
06.06.2012, 14:21:04
    #37827672
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
возьмите тогда шрифт монотайпный, если не хотите читать что вам пишут.
...
Рейтинг: 0 / 0
06.06.2012, 14:27:31
    #37827684
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Hett,

как расчитать ширину текста в пикселях?
...
Рейтинг: 0 / 0
06.06.2012, 14:45:12
    #37827714
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
hemoy,
Код: php
1.
         imagecopy($rImage2, $rImage, ($iSrcWidth-$l)/2, 0, 0, 0, $iSrcWidth, $iSrcHeight); 




Код: php
1.
2.
3.
4.
5.
6.
$text = 'Пошеddeeeeeeeedл ';
$text2 = 'Ноd eeeeeeeeeeeeпотл';
$textl=str_replace(" ","",$text);
$textl2=str_replace(" ","",$text2);
$l = strlen($textl)*12.5;
$l2 = strlen($textl2)*11; - как по умному рассчитать ширину текста в пикселях? а так почти все получается
...
Рейтинг: 0 / 0
06.06.2012, 16:08:49
    #37827906
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
hemoyHett,

как расчитать ширину текста в пикселях?

второе сообщение в этой теме прочитайте уже наконец
...
Рейтинг: 0 / 0
06.06.2012, 17:16:50
    #37828090
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
<?php
     if (! extension_loaded('gd')) { // Проверяем установку библиотеки GD
        echo 'GD не установлено. Обратитесь к администратору вашего сайта!';
        exit;
    }
	if (isset($_POST['mem'])) {

	$texttop=$_POST['texttop'];

	$textbottom=$_POST['textbottom'];
	$texttop=trim($texttop);
	$textbottom=trim($textbottom);
	$texttop = stripslashes($texttop);
	$texttop = htmlspecialchars($texttop);
	$textbottom = stripslashes($textbottom);
	$textbottom = htmlspecialchars($textbottom);
    $sOrigImg = "label.png";
    $aImgInfo = getimagesize($sOrigImg);
    if (is_array($aImgInfo) && count($aImgInfo)) {

        $iSrcWidth = $aImgInfo[0];
        $iSrcHeight = $aImgInfo[1];

		$rImage = imagecreatetruecolor($iSrcWidth, $iSrcHeight); 
		$transparent = imagecolorallocatealpha($rImage, 0, 0, 0, 127);
		imagefill($rImage, 0, 0, $transparent);
		imagesavealpha($rImage, true);
        $rImage3 = imagecreatetruecolor($iSrcWidth, $iSrcHeight);
		$transparent = imagecolorallocatealpha($rImage3, 0, 0, 0, 127);
		imagefill($rImage3, 0, 0, $transparent);
		imagesavealpha($rImage3, true);

		$rImage2 = imagecreatetruecolor($iSrcWidth, $iSrcHeight); // Создаем новоео изображение
        $rSrcImage = imagecreatefrompng($sOrigImg); //  Создаем исходное изображение
       imagecopy($rImage2, $rSrcImage, 0, 0, 0, 0, $iSrcWidth, $iSrcHeight); // Копируем полученное изображение на изображение-источник



$white = imagecolorallocate($rImage, 255, 255, 255);


$text1 = $texttop;
$text2 = $textbottom;



	$black = imagecolorallocate($rImage,0,0,0);
    $font = '5200.ttf';
	$font_size = 32;
	$font_size2 = 32;



$bbox1 = imagettfbbox($font_size, 0, $font, $text1);
$bbox2 = imagettfbbox($font_size, 0, $font, $text2);
$xPos1 = $bbox1[0] + (imagesx($rImage) / 2) - ($bbox1[4] / 2) ;
$yPos1 = $bbox1[1] + (imagesy($rImage) / 2) - ($bbox1[5] / 2) -200;
$xPos2 = $bbox2[0] + (imagesx($rImage3) / 2) - ($bbox2[4] / 2) ;
$yPos2 = $bbox2[1] + (imagesy($rImage3) / 2) - ($bbox2[5] / 2) +200;

  	imagettftext($rImage,$font_size,0,$xPos1, $yPos1-1,$black,$font,$text1);
	imagettftext($rImage,$font_size,0,$xPos1-1,$yPos1,$black,$font,$text1);
	imagettftext($rImage,$font_size,0,$xPos1,$yPos1+1,$black,$font,$text1);
	imagettftext($rImage,$font_size,0,$xPos1+1,$yPos1,$black,$font,$text1);
	imagettftext($rImage,$font_size,0,$xPos1, $yPos1,$white, $font, $text1);

	imagettftext($rImage3,$font_size2,0,$xPos2, $yPos2-1,$black,$font,$text2);
	imagettftext($rImage3,$font_size2,0,$xPos2-1,$yPos2,$black,$font,$text2);
	imagettftext($rImage3,$font_size2,0,$xPos2,$yPos2+1,$black,$font,$text2);
	imagettftext($rImage3,$font_size2,0,$xPos2+1,$yPos2,$black,$font,$text2);
	imagettftext($rImage3,$font_size2,0,$xPos2, $yPos2,$white, $font, $text2);
	$x1 = imagesx($rImage);
	$y1 = imagesy($rImage);
	$x2 = imagesx($rImage3);
	$y2 = imagesy($rImage3);


         imagecopy($rImage2, $rImage,  0 , 0,0,0, $x1, $y1); 
		 imagecopy($rImage2, $rImage3,  0 , 0,0,0, $x2, $y2);

    header ("Content-type: image/png");
    imagepng($rImage2); // Выводим изображение
	imagedestroy($rImage2);
    } else {
        echo 'Что-то не так с изобржаением!';
        exit;
    }

		} else { echo'<a href="http://makeitpro.ru/genmem" title="Сгенерировать" target="_blank" >Сгенерировать</a>';}
	?>




Спасибо большое, но не могу понять почему используются именно такие индексы у массива
Код: php
1.
2.
3.
$bbox1 = imagettfbbox($font_size, 0, $font, $text1);
$xPos1 = $bbox1[0] + (imagesx($rImage) / 2) - ($bbox1[4] / 2) ;
$yPos1 = $bbox1[1] + (imagesy($rImage) / 2) - ($bbox1[5] / 2) -200;



работа скрипта http://makeitpro.ru/genmem/
...
Рейтинг: 0 / 0
06.06.2012, 17:51:33
    #37828168
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
а есть способ оптимально обводить текст и еще, как сделать например, если текст длинный то уменьшить шрифт и разбить его на две части
...
Рейтинг: 0 / 0
06.06.2012, 18:12:19
    #37828210
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
hemoy,

Это уже чистой воды математика. Надо начинать с определения понятий "длинный", "уменьшить". На сколько уменьшить? Каковы ограничения на размер, так чтобы текст оставался читаемым? Почему на две части, а мож на три придется поделить или на четыре? А не вылезет текст за пределы картинки? Вопросов тут слишком много, и отвечать на них придется Вам ))) Описывайте условия, ограничения, составляйте алгоритм обработки всей этой байды. И все получится ))
...
Рейтинг: 0 / 0
06.06.2012, 18:32:32
    #37828240
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
авторСпасибо большое, но не могу понять почему используются именно такие индексы у массива
Вы кроме названия функции на этой странице прочитали еще что-нибудь? )
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 0 нижний левый угол, X координата 
 1 нижний левый угол, Y координата 
2 нижний правый угол, X координата
3 нижний правый угол, Y координата
4 верхний правый угол, X координата
5 верхний правый угол, Y координата
6 верхний левый угол, X координата
7 верхний левый угол, Y координата
...
Рейтинг: 0 / 0
06.06.2012, 18:33:55
    #37828241
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
ну да, что-то не то, ну вы не копируйте бездумно, пишите сами)
...
Рейтинг: 0 / 0
06.06.2012, 20:03:51
    #37828363
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
<?php
     if (! extension_loaded('gd')) { // Проверяем установку библиотеки GD
        echo 'GD не установлено. Обратитесь к администратору вашего сайта!';
        exit;
    }
	if (isset($_POST['mem'])) {
        $font = '5200.ttf';
	$texttop=$_POST['texttop'];

	$textbottom=$_POST['textbottom'];
	$texttop=trim($texttop);
	$textbottom=trim($textbottom);
	$texttop = stripslashes($texttop);
	$texttop = htmlspecialchars($texttop);
	$textbottom = stripslashes($textbottom);
	$textbottom = htmlspecialchars($textbottom);
    $sOrigImg = "label.png";
    $aImgInfo = getimagesize($sOrigImg);
    if (is_array($aImgInfo) && count($aImgInfo)) {

        $iSrcWidth = $aImgInfo[0];
        $iSrcHeight = $aImgInfo[1];

		$rImage = imagecreatetruecolor($iSrcWidth, $iSrcHeight); 
		$transparent = imagecolorallocatealpha($rImage, 0, 0, 0, 127);
		imagefill($rImage, 0, 0, $transparent);
		imagesavealpha($rImage, true);
        $rImage3 = imagecreatetruecolor($iSrcWidth, $iSrcHeight);
		$transparent = imagecolorallocatealpha($rImage3, 0, 0, 0, 127);
		imagefill($rImage3, 0, 0, $transparent);
		imagesavealpha($rImage3, true);

		$rImage2 = imagecreatetruecolor($iSrcWidth, $iSrcHeight); // Создаем новоео изображение
        $rSrcImage = imagecreatefrompng($sOrigImg); //  Создаем исходное изображение
       imagecopy($rImage2, $rSrcImage, 0, 0, 0, 0, $iSrcWidth, $iSrcHeight); // Копируем полученное изображение на изображение-источник



    
	$font_size = 32;
	$font_size2 = 32;
$text1 = $texttop;




$text2 = $textbottom;


function creatText($rImage, $text1, $rImage2,$font_size,$font,$kory1,$flag){
    
$d=explode(" ",$text1);
$ss[]="";
$j=0;
foreach ($d as $i){
   if ( strlen($ss[$j]) < 20) {
    
    $ss[$j]=$ss[$j]." ".$i;
   } else { $j=$j+1;}
    
}   
    $white = imagecolorallocate($rImage, 255, 255, 255);
    $black = imagecolorallocate($rImage,0,0,0);
    $count=0;
    foreach ($ss as $ii)  {
    $bbox1 = imagettfbbox($font_size, 0, $font, $ii);
    $xPos1 = $bbox1[0] + (imagesx($rImage) / 2) - ($bbox1[4] / 2) ;
    $yPos1 = $bbox1[1] + (imagesy($rImage) / 2) - ($bbox1[5] / 2) -($kory1-$countt);
	$x1 = imagesx($rImage);
	$y1 = imagesy($rImage);

  	imagettftext($rImage,$font_size,0,$xPos1, $yPos1-1,$black,$font,$ii);
	imagettftext($rImage,$font_size,0,$xPos1-1,$yPos1,$black,$font,$ii);
	imagettftext($rImage,$font_size,0,$xPos1,$yPos1+1,$black,$font,$ii);
	imagettftext($rImage,$font_size,0,$xPos1+1,$yPos1,$black,$font,$ii);
	imagettftext($rImage,$font_size,0,$xPos1, $yPos1,$white, $font,$ii);
    imagecopy($rImage2, $rImage,  0 , 0,0,0, $x1, $y1); 
    if ($flag=="+") {
    $countt=$countt+40;} elseif ($flag=="-") { $countt=$countt-40;} else {};
}


}


creatText ($rImage, $text1, $rImage2,$font_size,$font,+180,"+");
creatText ($rImage3, $text2, $rImage2,$font_size,$font,-160,"-");

    header ("Content-type: image/png");
    imagepng($rImage2); // Выводим изображение
	imagedestroy($rImage2);
    } else {
        echo 'Что-то не так с изобржаением!';
        exit;
    }

		} else { echo'<a href="http://makeitpro.ru/genmem" title="Сгенерировать" target="_blank" >Сгенерировать</a>';}
	?>



Наброски, вроде работают , что можно еще улучшить?
...
Рейтинг: 0 / 0
06.06.2012, 20:19:03
    #37828384
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
4 слово пропадает, не могу понять почему
...
Рейтинг: 0 / 0
06.06.2012, 20:22:41
    #37828386
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
в цикле массива ss ошибка, нашел)
...
Рейтинг: 0 / 0
06.06.2012, 20:28:11
    #37828391
hemoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
<?php
     if (! extension_loaded('gd')) { // Проверяем установку библиотеки GD
        echo 'GD не установлено. Обратитесь к администратору вашего сайта!';
        exit;
    }
	if (isset($_POST['mem'])) {
        $font = '5200.ttf';
	$texttop=$_POST['texttop'];

	$textbottom=$_POST['textbottom'];
	$texttop=trim($texttop);
	$textbottom=trim($textbottom);
	$texttop = stripslashes($texttop);
	$texttop = htmlspecialchars($texttop);
	$textbottom = stripslashes($textbottom);
	$textbottom = htmlspecialchars($textbottom);
    $sOrigImg = "label.png";
    $aImgInfo = getimagesize($sOrigImg);
    if (is_array($aImgInfo) && count($aImgInfo)) {

        $iSrcWidth = $aImgInfo[0];
        $iSrcHeight = $aImgInfo[1];

		$rImage = imagecreatetruecolor($iSrcWidth, $iSrcHeight); 
		$transparent = imagecolorallocatealpha($rImage, 0, 0, 0, 127);
		imagefill($rImage, 0, 0, $transparent);
		imagesavealpha($rImage, true);
        $rImage3 = imagecreatetruecolor($iSrcWidth, $iSrcHeight);
		$transparent = imagecolorallocatealpha($rImage3, 0, 0, 0, 127);
		imagefill($rImage3, 0, 0, $transparent);
		imagesavealpha($rImage3, true);

		$rImage2 = imagecreatetruecolor($iSrcWidth, $iSrcHeight); // Создаем новоео изображение
        $rSrcImage = imagecreatefrompng($sOrigImg); //  Создаем исходное изображение
       imagecopy($rImage2, $rSrcImage, 0, 0, 0, 0, $iSrcWidth, $iSrcHeight); // Копируем полученное изображение на изображение-источник



    
	$font_size = 32;
	$font_size2 = 32;
$text1 = $texttop;




$text2 = $textbottom;


function creatText($rImage, $text1, $rImage2,$font_size,$font,$kory1,$flag){
    
$d=explode(" ",$text1);
$ss[]="";
$j=0;
foreach ($d as $i){
   if ( strlen($ss[$j]) < 24) {
    
    $ss[$j]=$ss[$j]." ".$i;
   } else { $j=$j+1;$ss[$j]=$ss[$j]." ".$i;}
    
}

if ($flag=="-") {$ss=array_reverse($ss );}
   
    $white = imagecolorallocate($rImage, 255, 255, 255);
    $black = imagecolorallocate($rImage,0,0,0);
    $count=0;
    foreach ($ss as $ii)  {
    $bbox1 = imagettfbbox($font_size, 0, $font, $ii);
    $xPos1 = $bbox1[0] + (imagesx($rImage) / 2) - ($bbox1[4] / 2) ;
    $yPos1 = $bbox1[1] + (imagesy($rImage) / 2) - ($bbox1[5] / 2) -($kory1-$countt);
	$x1 = imagesx($rImage);
	$y1 = imagesy($rImage);

  	imagettftext($rImage,$font_size,0,$xPos1, $yPos1-1,$black,$font,$ii);
	imagettftext($rImage,$font_size,0,$xPos1-1,$yPos1,$black,$font,$ii);
	imagettftext($rImage,$font_size,0,$xPos1,$yPos1+1,$black,$font,$ii);
	imagettftext($rImage,$font_size,0,$xPos1+1,$yPos1,$black,$font,$ii);
	imagettftext($rImage,$font_size,0,$xPos1, $yPos1,$white, $font,$ii);
    imagecopy($rImage2, $rImage,  0 , 0,0,0, $x1, $y1); 
    if ($flag=="+") {
    $countt=$countt+40;} elseif ($flag=="-") { $countt=$countt-40;} else {};
}


}


creatText ($rImage, $text1, $rImage2,$font_size,$font,+180,"+");
creatText ($rImage3, $text2, $rImage2,$font_size,$font,-160,"-");

    header ("Content-type: image/png");
    imagepng($rImage2); // Выводим изображение
	imagedestroy($rImage2);
    } else {
        echo 'Что-то не так с изобржаением!';
        exit;
    }

		} else { echo'<a href="http://makeitpro.ru/genmem" title="Сгенерировать" target="_blank" >Сгенерировать</a>';}
	?>
...
Рейтинг: 0 / 0
06.06.2012, 20:43:10
    #37828409
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Модератор: hemoy , километры кода под спйлер прятайте, а то обсуждения за ними не видно ))
...
Рейтинг: 0 / 0
06.06.2012, 20:50:05
    #37828414
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Проблема с графикой
Няшу бррр напоминает
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Проблема с графикой / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]