Autor | Zpráva | ||
---|---|---|---|
Tom96 Profil * |
#1 · Zasláno: 30. 6. 2009, 10:31:31
Zdravím, chtěl bych ve své práci použít nějaké funkce pro vytváření obrázků v php, ale i když použiji ukázkový kód z php manuálu,
<?php header ('Content-type: image/png'); $im = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); $text_color = imagecolorallocate($im, 233, 14, 91); imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color); imagepng($im); imagedestroy($im); ?> háže mi to chybu: Obrázek "http://localhost/test.php" nelze zobrazit, protože obsahuje chyby. Podle phpinfo() je gd povolená a funkce gd_info mi vypsala toto: Array ( [GD Version] => bundled (2.0.34 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => 1 [GIF Read Support] => 1 [GIF Create Support] => 1 [JPG Support] => 1 [PNG Support] => 1 [WBMP Support] => 1 [XPM Support] => [XBM Support] => 1 [JIS-mapped Japanese Font Support] => ) Zkoušel jsem i podle těchto rad vykomentovat hlavičku a povolit výpis chyb, ale žádné mi to nezobrazuje. Nevíte kde může být chyba? |
||
keeehi Profil |
#2 · Zasláno: 30. 6. 2009, 10:43:36
Tom96:
„Obrázek "http://localhost/test.php" nelze zobrazit, protože obsahuje chyby.“ tobě to doopravdy háže takovouto česky psanou chybu, nebo jsi to přeložil a napsal sem, co jsi přeložil ty? Chybu v kódu jsem neobjevil, takže jediné co mě napadá je, že máš před <?php něco napsané (stačí i jedina jediná mezera) a protože se pak snažíš odesílat hlavičku, tak ti to nefunguje. |
||
Tom96 Profil * |
#3 · Zasláno: 30. 6. 2009, 10:53:32
abych to upřesnil, tak tu chybu přesně takhle příše Firefox. (IE zobrazí obdlélník s červeným křížem)
a před <?php nic nemám |
||
Alphard Profil |
#4 · Zasláno: 30. 6. 2009, 11:06:10
Jak ten obrázek otvíráte?
Otevřete ho přímo v prohlížeči (v adresním řádku bude http://localhost/test.php) a zakomentujte tu hlavičku. Jak již psal keeehi, před <?php nesmí být vůbec nic. Tím narážím na tzv. BOM, jaké kódování používáte? Případně můžete zkusit něco jednoduššího: <?php header ('Content-type: image/png'); $im = imagecreatetruecolor(200, 150); imagepng($im); ?> |
||
peta Profil |
#5 · Zasláno: 30. 6. 2009, 11:11:04 · Upravil/a: peta
* @ - tohle smazat
* //header('Content-type: image/png'); - tohle zakomentovat * pridat uplne na zacatek @ini_set('error_reporting', E_ALL); @ini_set("display_errors", "on"); error_reporting(E_ALL); na cz.php.net/imagepng je priklad: <?php $im = imagecreatefrompng("test.png"); header('Content-type: image/png'); imagepng($im); imagedestroy($im); ?> Takze ciste teoreticky je priklad oki. http://cz.php.net/imagestring <?php $im = imagecreate(100, 30); $bg = imagecolorallocate($im, 255, 255, 255); $textcolor = imagecolorallocate($im, 0, 0, 255); imagestring($im, 5, 0, 0, 'Hello world!', $textcolor); header('Content-type: image/png'); imagepng($im); imagedestroy($im); ?> Coz je uplne to same. Si myslim, ze ti to zkapalo na nejake chybe a text 'obrazek nenacten' nejsou obrazkova data. Mezi kazdy prikaz bych dal echo cislo (1,2,3,4) a tam uvidis, co se provede a co ne, ikdyz to nenapise chybu., pripadne se da vysledek funkce vychechovat. $b = imagestring($im, 5, 0, 0, 'Hello world!', $textcolor); echo $b*1; |
||
Tom96 Profil * |
#6 · Zasláno: 30. 6. 2009, 11:23:47
tak chyba je nejspíš v tom BOM jak píšete. Předtím jsem to zkoušel v uft-8, ale když změním kódování na iso8859-2 nebo windows1250 tak to již funguje. Jestli tomu dobře rozumím, tak pokud budu chtít používat utf-8, tak budu muset sehnat editor, který to dokáže bez toho BOM ukládat...
|
||
Alphard Profil |
#7 · Zasláno: 30. 6. 2009, 11:31:32
Tom96:
„Jestli tomu dobře rozumím, tak pokud budu chtít používat utf-8, tak budu muset sehnat editor, který to dokáže bez toho BOM ukládat“ Ano, ale neměl by to být problém, snad všechny dobré editory pro programátory (samozřejmě i IDE) to umožňují alespoň vypnout v nastavení. |
||
Tom96 Profil * |
#8 · Zasláno: 30. 6. 2009, 12:43:36
děkuji moc za vaši pomoc
|
||
Časová prodleva: 15 let
|
0