• Ogłoszenie:

grafika w php

Wszystko odnośnie tworzenia grafiki - obróbka, problemy, oceny.
Tworzenia Stron internetowych - HTML, PHP, MySQL...

Grafika w php

Postprzez eSpEY 19 Paź 2007, 18:11

reklama
Napisałem skrypt który wyświetla ip i date:
Image
Tecniką ImageString
Lecz gdzy chciałem napisać 2 sposobem: ImageTTFText
Nie działa
Kod: Zaznacz wszystko
PHP
<?
$rysunek = ImageCreateFromJpeg("ipbg.jpg");
$bialy = ImageColorAllocate($rysunek, 255, 255, 255);
$nieb = ImageColorAllocate($rysunek, 0, 255, 255);
$tekst = $HTTP_SERVER_VARS['REMOTE_ADDR'];
ImageTTFText($rysunek, 30, 40, 50, $bialy, 'arial.ttf', $tekst);
header("Content-type: image/jpeg");
ImageJpeg($rysunek);
?>

co tu nie tak?

2. Sprawa: Brak polskich znaków jak to zmienić?!
W domu:AMD Athlon X4 640 | Asus m4a78lt | DDR3 4096MB 666Mhz | NVDIA GeForce GTS 450 | ATX 500W
W pracy:Intel Core i5-3470 | 2 x DDR4 4096MB 2133Mhz | Qyadro K600 1024MB | ATX 750W
Awatar użytkownika
eSpEY
 
Posty: 1340
Dołączenie: 04 Lut 2007, 12:24
Miejscowość: Olsztyn
Pochwały: 111



Postprzez @Marcin 20 Paź 2007, 10:33

na początku pierwszy błąd
Kod: Zaznacz wszystko
<?php
$rysunek = ImageCreateFromJpeg("ipbg.jpg");
$bialy = ImageColorAllocate($rysunek, 255, 255, 255);
$nieb = ImageColorAllocate($rysunek, 0, 255, 255);
$tekst = $HTTP_SERVER_VARS['REMOTE_ADDR'];
ImageTTFText($rysunek, 30, 40, 50, $bialy, 'arial.ttf', $tekst);
header("Content-type: image/jpeg");
ImageJpeg($rysunek);
?>

sprawdź :)
Awatar użytkownika
@Marcin
~user
 
Posty: 2296
Dołączenie: 19 Sty 2005, 08:55
Miejscowość: Jugów
Pochwały: 232



Postprzez eSpEY 21 Paź 2007, 11:16

W domu:AMD Athlon X4 640 | Asus m4a78lt | DDR3 4096MB 666Mhz | NVDIA GeForce GTS 450 | ATX 500W
W pracy:Intel Core i5-3470 | 2 x DDR4 4096MB 2133Mhz | Qyadro K600 1024MB | ATX 750W
Awatar użytkownika
eSpEY
 
Posty: 1340
Dołączenie: 04 Lut 2007, 12:24
Miejscowość: Olsztyn
Pochwały: 111



Postprzez husky83 29 Paź 2007, 15:46

sprawdź która część kodu powoduje błąd - zakomentuj od całą linię ImageTTFText i zobacz co się stanie.
Spróbuj sobie stworzyć coś w rodzaju debugera, żeby w razie problemów pokazywał Ci błędy

Kod: Zaznacz wszystko
<?php
$error=0;
$rysunek = ImageCreateFromJpeg("ipbg.jpg");
if (!$rysunek) $error=1;
$bialy = ImageColorAllocate($rysunek, 255, 255, 255);
$nieb = ImageColorAllocate($rysunek, 0, 255, 255);
$tekst = $HTTP_SERVER_VARS['REMOTE_ADDR'];
if (!(ImageTTFText($rysunek, 30, 40, 50, $bialy, 'arial.ttf', $tekst)) $error=1);
if (!$error)
{
  header("Content-type: image/jpeg");
  ImageJpeg($rysunek);
}
?>

teraz jeśli wystąpi jakiś błąd to nei powinien próbować wysłać obrazka tylko napisze co jest nieteges... Metoda troszkę łopatologiczna, ale moze pomoze :)

Sprawdź też czy masz pliczek czcionki, czy wielkość liter sie zgadza,
jeśli tak, spróbuj dodać '/' na początku. Póki co nic więcej mi do głowy nie przychodzi...
husky83
~user
 
Posty: 11
Dołączenie: 01 Wrz 2007, 16:55



Postprzez eSpEY 29 Paź 2007, 16:43

sam zobacz
http://class-download.cba.pl/ii.php

[ Dodano: Dzisiaj o 15:44 ]
husky83 napisał(a):spróbuj dodać '/' na początku


na początku czego?
W domu:AMD Athlon X4 640 | Asus m4a78lt | DDR3 4096MB 666Mhz | NVDIA GeForce GTS 450 | ATX 500W
W pracy:Intel Core i5-3470 | 2 x DDR4 4096MB 2133Mhz | Qyadro K600 1024MB | ATX 750W
Awatar użytkownika
eSpEY
 
Posty: 1340
Dołączenie: 04 Lut 2007, 12:24
Miejscowość: Olsztyn
Pochwały: 111



Postprzez seg fault 29 Paź 2007, 23:03

Kod: Zaznacz wszystko
if (!(ImageTTFText($rysunek, 30, 40, 50, $bialy, 'arial.ttf', $tekst)) $error=1);

po 1. nawiasy w tej linijce sie nie zgadzają, najprosciej pisać w jakims edytorze, który łączy nawias zamykający z otwierajacym...
po 2. ta funkcja ImageTTFText ma jeden argument więcej, który zgubiłes....
http://pl2.php.net/manual/pl/function.imagettftext.php
w tej chwili więcej nie widze ale pewnie jeszcze cos bedziesz musial poprawic ;)
A Linux machine! Because a 486 is a terrible thing to waste! -- Joe Sloan
#345539
Awatar użytkownika
seg fault
~user
 
Posty: 588
Dołączenie: 11 Kwi 2006, 20:31
Miejscowość: /dev/random
Pochwały: 49



Postprzez husky83 30 Paź 2007, 09:30

Kod: Zaznacz wszystko
$error=0;
$rysunek = ImageCreateFromJpeg("5.JPG");
if (!$rysunek) $error=1;
$bialy = ImageColorAllocate($rysunek, 255, 255, 255);
$nieb = ImageColorAllocate($rysunek, 0, 255, 255);
$tekst = $HTTP_SERVER_VARS['REMOTE_ADDR'];
$wielkosc_czcionki=50;
$kat_tekstu=0;
$poz_x=10;
$poz_y=50;
$gr=imagettftext ($rysunek,$wielkosc_czcionki,$kat_tekstu,$poz_x,$poz_y,$nieb,'arial.ttf',$tekst);
if (!$gr) $error=1;
if (!$error)
{
   header("Content-type: image/jpeg");
   ImageJpeg($rysunek);
};


a to '/' ewentualnie wstaw przy czcionce: '/arial.ttf'.. U mnie raz dopiero tak zadziałało nie wiedzieć czemu ;-)

Powyższy programik przynajmniej u mnie wyświetla to co powinien ;-)

EDIT..
oczywiście zmień też nazwę pliku tła, ja wziąłem pierwsze co miałem u siebie :P
A co do nawiasów to faktycznie namieszałem nieźle :D Cosik mi sie wszystko pomerdało, że $error=1 też dałem do nawiasu :P
husky83
~user
 
Posty: 11
Dołączenie: 01 Wrz 2007, 16:55



Postprzez eSpEY 30 Paź 2007, 17:28

a czy to może być wina serwera??
jak tak to jakiś free serwer z obsłógą!
W domu:AMD Athlon X4 640 | Asus m4a78lt | DDR3 4096MB 666Mhz | NVDIA GeForce GTS 450 | ATX 500W
W pracy:Intel Core i5-3470 | 2 x DDR4 4096MB 2133Mhz | Qyadro K600 1024MB | ATX 750W
Awatar użytkownika
eSpEY
 
Posty: 1340
Dołączenie: 04 Lut 2007, 12:24
Miejscowość: Olsztyn
Pochwały: 111



Postprzez seg fault 30 Paź 2007, 20:26

a nie działa ci ten kod, który wkleił husky83?
może nie masz takiej czczionki?

na początku skryptu dopisz sobie
Kod: Zaznacz wszystko
error_reporting(E_ALL);
ini_set('display_errors', '1');

i będa wyświetlane bledy, wtedy znacznie łatwiej debugować skrypty.

może to oczywiscie byc związane z php na tym serwerze...manual ImageTTFText mówi:
Note: This function is only available if PHP is compiled with freetype support (--with-freetype-dir=DIR)
A Linux machine! Because a 486 is a terrible thing to waste! -- Joe Sloan
#345539
Awatar użytkownika
seg fault
~user
 
Posty: 588
Dołączenie: 11 Kwi 2006, 20:31
Miejscowość: /dev/random
Pochwały: 49



Postprzez eSpEY 31 Paź 2007, 17:58

Serwer napisał(a):Warning: imagecreatefromjpeg(5.JPG) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /var/www/virtual/class-download.cba.pl/ii.php on line 5

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /var/www/virtual/class-download.cba.pl/ii.php on line 7

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /var/www/virtual/class-download.cba.pl/ii.php on line 8

Warning: imagettftext() expects parameter 1 to be resource, boolean given in /var/www/virtual/class-download.cba.pl/ii.php on line 14


czyżby nie obsłógje?!
W domu:AMD Athlon X4 640 | Asus m4a78lt | DDR3 4096MB 666Mhz | NVDIA GeForce GTS 450 | ATX 500W
W pracy:Intel Core i5-3470 | 2 x DDR4 4096MB 2133Mhz | Qyadro K600 1024MB | ATX 750W
Awatar użytkownika
eSpEY
 
Posty: 1340
Dołączenie: 04 Lut 2007, 12:24
Miejscowość: Olsztyn
Pochwały: 111



Postprzez husky83 31 Paź 2007, 18:09

zmień 5.JPG na swoją grafikę tła.. czyli na ipbg.jpg. Pisałem zresztą o tym. i pamiętaj o wielkości liter !!
husky83
~user
 
Posty: 11
Dołączenie: 01 Wrz 2007, 16:55



Postprzez eSpEY 31 Paź 2007, 18:32

spox:
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /var/www/virtual/class-download.cba.pl/ii.php on line 14


[ Dodano: Dzisiaj o 17:38 ]
<?
error_reporting(E_ALL);
ini_set('display_errors', '1');
$error=0;
$rysunek = ImageCreateFromJpeg("ipbg.jpg");
if (!$rysunek) $error=1;
$bialy = ImageColorAllocate($rysunek, 255, 255, 255);
$nieb = ImageColorAllocate($rysunek, 0, 255, 255);
$tekst = $HTTP_SERVER_VARS['REMOTE_ADDR'];
$wielkosc_czcionki=50;
$kat_tekstu=0;
$poz_x=10;
$poz_y=50;
$gr=imagettftext ($rysunek,$wielkosc_czcionki,$kat_tekstu,$poz_x,$poz_y,$nieb,'arial.ttf',$tekst);
if (!$gr) $error=1;
if (!$error)
{
header("Content-type: image/jpeg");
ImageJpeg($rysunek);
}
?>
[code][/code]
W domu:AMD Athlon X4 640 | Asus m4a78lt | DDR3 4096MB 666Mhz | NVDIA GeForce GTS 450 | ATX 500W
W pracy:Intel Core i5-3470 | 2 x DDR4 4096MB 2133Mhz | Qyadro K600 1024MB | ATX 750W
Awatar użytkownika
eSpEY
 
Posty: 1340
Dołączenie: 04 Lut 2007, 12:24
Miejscowość: Olsztyn
Pochwały: 111



Postprzez husky83 31 Paź 2007, 18:41

nie masz tam wrzuconej czcionki !! dorzuć plik czcionki na serwer i też pamiętaj o wielkości liter !!
husky83
~user
 
Posty: 11
Dołączenie: 01 Wrz 2007, 16:55



Postprzez eSpEY 31 Paź 2007, 18:47

mam na 100%!!!
Warning: imagettftext() [function.imagettftext]: Could not find/open font in /var/www/virtual/class-download.cba.pl/ii.php on line 14


[ Dodano: Dzisiaj o 17:52 ]
jak mam '/arial.ttf' to:
Warning: imagettftext() [function.imagettftext]: open_basedir restriction in effect. File(/arial.ttf) is not within the allowed path(s): (/var/www/virtual:/usr/share/php/:/tmp/:/var/www/userstats/:/eaccelerator) in /var/www/virtual/class-download.cba.pl/ii.php on line 14

Warning: imagettftext() [function.imagettftext]: Invalid font filename in /var/www/virtual/class-download.cba.pl/ii.php on line 14


[ Dodano: Dzisiaj o 8:27 ]
spox zmieniłem na bmp i działa!

ale brak polskich znaków?!
jak zmienić?

moze za pomocą:
Kod: Zaznacz wszystko
header("...");
?
W domu:AMD Athlon X4 640 | Asus m4a78lt | DDR3 4096MB 666Mhz | NVDIA GeForce GTS 450 | ATX 500W
W pracy:Intel Core i5-3470 | 2 x DDR4 4096MB 2133Mhz | Qyadro K600 1024MB | ATX 750W
Awatar użytkownika
eSpEY
 
Posty: 1340
Dołączenie: 04 Lut 2007, 12:24
Miejscowość: Olsztyn
Pochwały: 111




Powróć do Grafika & Webmastering

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 6 gości