$im = imagecreate(310, 320); $background_color = imagecolorallocate($im, 255, 255, 255); $fontPath = 'sciezka/do/tahoma.ttf'; //plik ttf do ściągniecia z <a href="http://nospor.pl/tahoma.ttf" target="_blank">http://nospor.pl/tahoma.ttf</a> $im_1 = imagecreatefromjpeg('http://nospor.pl/element_2_m.jpg'); $text_color = imagecolorallocate($im_1, 255, 0, 0); imagettftext($im_1, 10, 0, 10, 20, $text_color, $fontPath, 'Test1'); imagecopyresampled($im , $im_1 , 0 , 0 , 0 , 0 , 198 , 108 , 198 , 108 ); $im_2 = imagecreatefromjpeg('http://nospor.pl/element_2_m.jpg'); $text_color = imagecolorallocate($im_2, 0, 0, 255); imagettftext($im_2, 10, 0, 10, 20, $text_color, $fontPath, 'Test2'); imagecopyresampled($im , $im_2 , 0 , 150 , 0 , 0 , 198 , 108 , 198 , 108 ); imagepng($im); imagedestroy($im);
Kod ten powinien wygenerować obraz na którym wgrane są dwa jpg a na tych jpg teksty w różnych kolorach.
Pierwszy tekst jest koloru czerwonego, drugi niebieskiego. I tu pojawia się problem. Pierwszy czerwony jest ok, niestety drugi niebieski nie jest niebieski tylko jakby kolorem wynikowym czerwonego z niebieskim.
Zauważyłem, że wszystko jest ok, gdy ładuję mniejsze obrazki i na nie nakładam tekst (np. plik element_2_n.jpg). Wniosek z tego nasuwa sie więc jeden - skoro na większym obrazku nie działa, to tak jakby brakowało pamięci lub coś w ten deseń. Jak temu zaradzić? Napewno nie chodzi o pamięć przeznaczoną na skrypt php, bo tej jest pod dostatkiem.