Autor | Zpráva | ||
---|---|---|---|
Watchick Profil * |
#1 · Zasláno: 31. 5. 2008, 16:33:41
Dobrý den, chtěl bych se zeptat, mám kód:
header("Content-type: image/png"); $user = $_GET['user']; $im = imagecreatefrompng("logo.png"); $user_width = imagettfbbox(9, 0, "tahoma.ttf", $user); $x_value = (200 - ($user_width[2] + 101)); $color = imagecolorallocate($im, 165, 164, 164); imagettftext($im, 8, 0, $x_value, 14, $color, "tahoma.ttf", $user); imagepng($im); imagedestroy($im); Kde $user je text, který se do obrázku napíše. Dá se nějak udělat aby se obrázek uložil do složky "loga" s číslem, které bude postupně nebíhat? (1.png, 2.png)? D9ky moc za rady |
||
matak Profil |
#2 · Zasláno: 31. 5. 2008, 16:52:27
k tomu nabíhání čísel, bych doporučil tento článek
http://www.webfaq.cz/clanek/Jak-v-PHP-ziskat-unikatni-nazev-souboru-kt ery-v-adresari-neexistuje uložení souboru pak probíhá připojením druhého argumentu k funkcni imagepng, tedy imagepng($im, "../cesta_k_souboru.txt"); viz. http://cz2.php.net/manual/en/function.imagepng.php |
||
Watchick Profil * |
#3 · Zasláno: 31. 5. 2008, 18:04:33
ok díky moc z toho manuálu jsem toho moc nepochopil neni tu moc příkladů, ale jdu zkusit zaměnit ty 2.. díky moc
|
||
Watchick Profil * |
#4 · Zasláno: 31. 5. 2008, 18:09:09
ještě k tomu:
1. <? 2. class File { 3. public function __construct() { } 4. public static function getOriginalName($path, $file) { 5. $i=0; 6. while (file_exists($path.$file)) { 7. $pos = strrpos($file, "."); 8. $ext = strtolower(substr($file , $pos+1)); 9. if (preg_match("/.+-CID(d+).[a-zA-Z]{3,4}$/", $file)) { 10. $file = preg_replace("/(.+)(-CIDd+)(.[a-zA-Z]{3,4}$)/", "$1-CID".$i, $file); 11. } elseif (preg_match("/.+(.)[a-zA-Z]{3,4}$/", $file)) { 12. $file = preg_replace("/(.+)(.[a-zA-Z]{3,4})$/", "$1-CID".$i, $file); 13. } else { 14. $image = "FILE-CID".$i.".".$ext; 15. } 16. $i++; 17. $file = $file.".".$ext; 18. } 19. return $file; 20. } 21. } 22. ?> co má být na začátku a na konci ve $file? |
||
Watchick Profil * |
#5 · Zasláno: 31. 5. 2008, 18:19:33
Jo zatím to mám v takovéto formě:
html,. který na logo.php odkazuje <form method="post"> Nazev: <input name="user" type="text" size="20" class="textbox"> <input type="submit" class="button" value="Create"> <br><br><input type="image" border="0" width="200" height="20" src="logo/logo.php?user=<?php echo $_REQUEST['user'] ?>"> </form> logo.php <?php header("Content-type: image/png"); $user = $_GET['user']; $file = $user . ".png"; class File { public function __construct() { } public static function getOriginalName($path, $file) { $i=0; while (file_exists($path.$file)) { $pos = strrpos($file, "."); $ext = strtolower(substr($file , $pos+1)); if (preg_match("/.+-CID(d+).[a-zA-Z]{3,4}$/", $file)) { $file = preg_replace("/(.+)(-CIDd+)(.[a-zA-Z]{3,4}$)/", "$1-CID".$i, $file); } elseif (preg_match("/.+(.)[a-zA-Z]{3,4}$/", $file)) { $file = preg_replace("/(.+)(.[a-zA-Z]{3,4})$/", "$1-CID".$i, $file); } else { $image = "FILE-CID".$i.".".$ext; } $i++; $file = $file.".".$ext; } return $file; } } $im = imagecreatefrompng($file); $user_width = imagettfbbox(9, 0, "tahoma.ttf", $user); $x_value = (200 - ($user_width[2] + 101)); $color = imagecolorallocate($im, 165, 164, 164); imagettftext($im, 8, 0, $x_value, 14, $color, "tahoma.ttf", $user); imagepng($im, "soubory/$file"); imagedestroy($im); ?> jinak tady to je |
||
matak Profil |
#6 · Zasláno: 31. 5. 2008, 23:01:54
co má být na začátku a na konci ve $file?
na začátku ve $file je název souboru, např. pokus.txt, pokud skript nalezne soubor pokus.txt v adresari vrati vysledek pokus-CID1.txt, při dalším opakování vrátí pokus-CID2.txt k imagepng, není co řešit není potřeba číst manuál, k tomu, aby se obrázek uložil do souboru, stačí zapsat imagepng($im, "/cesta/k/souboru/nazevsouboru.png"); a on se uloží |
||
matak Profil |
#7 · Zasláno: 31. 5. 2008, 23:03:19 · Upravil/a: matak
každopádně pokud nechci používat objekty a to není nutné stačí z celého kódu vytáhnout jen
$i=0; while (file_exists($path.$file)) { $pos = strrpos($file, "."); $ext = strtolower(substr($file , $pos+1)); if (preg_match("/.+-CID(d+).[a-zA-Z]{3,4}$/", $file)) { $file = preg_replace("/(.+)(-CIDd+)(.[a-zA-Z]{3,4}$)/", "$1-CID".$i, $file); } elseif (preg_match("/.+(.)[a-zA-Z]{3,4}$/", $file)) { $file = preg_replace("/(.+)(.[a-zA-Z]{3,4})$/", "$1-CID".$i, $file); } else { $image = "FILE-CID".$i.".".$ext; } $i++; $file = $file.".".$ext; pokud chci použít objekty používám takto: $validninazevsouboru = File::getOriginalName("cesta/k/soboru", "logo.png"); |
||
Watchick Profil * |
#8 · Zasláno: 1. 6. 2008, 06:20:36
díky, už je mi to o dost jasnější,ale stále nechápu, proč se tady opakují nejaké .txt soubory, kdyz se jedná o obrázek?
|
||
matak Profil |
#9 · Zasláno: 1. 6. 2008, 10:12:00
to byl přece jen příklad, je celkem jedno co tam dáš, název souboru je libovolný
|
||
Watchick Profil * |
#10 · Zasláno: 1. 6. 2008, 11:08:05
ok, takže
header("Content-type: image/png"); $user = $_GET['user']; $file = $user . ".png"; $i=0; while (file_exists($path.$file)) { $pos = strrpos($file, "."); $ext = strtolower(substr($file , $pos+1)); if (preg_match("/.+-CID(d+).[a-zA-Z]{3,4}$/", $file)) { $file = preg_replace("/(.+)(-CIDd+)(.[a-zA-Z]{3,4}$)/", "$1-CID".$i, $file); } elseif (preg_match("/.+(.)[a-zA-Z]{3,4}$/", $file)) { $file = preg_replace("/(.+)(.[a-zA-Z]{3,4})$/", "$1-CID".$i, $file); } else { $image = "FILE-CID".$i.".".$ext; } $i++; $file = $file.".".$ext; } $im = imagecreatefrompng($file); $user_width = imagettfbbox(9, 0, "tahoma.ttf", $user); $x_value = (200 - ($user_width[2] + 101)); $color = imagecolorallocate($im, 165, 164, 164); imagettftext($im, 8, 0, $x_value, 14, $color, "tahoma.ttf", $user); imagepng($im, "soubory/$file"); imagedestroy($im); ale stále to nějak nefunguje |
||
matak Profil |
#11 · Zasláno: 1. 6. 2008, 11:17:04
myslím, že nevíš co se v tom skriptu děje, popis v bodech co nejstručněji co chceš udělat
|
||
Watchick Profil * |
#12 · Zasláno: 1. 6. 2008, 13:12:05
aha :-)
ok takže to základní dělalo tohle: text, který se poslal se zapsal do obrázku, ten se zobrazil, ale pouze zobrazil nikam se neuložil a já bych potřeboval: aby se to nejen že zobrazilo, ale také uložilo se unikátním názvem do složky "soubory" a stránka pak mohla vypsat BBcode pro fóra (fungovalo by to jako vytvoření reklamy s podpisem na propagaci našeho webu...) je to dost stručné a srozumitelné? jo a díky za to, že se mi snažíš pomoci, většina uživatelů tady moc vřelých není, díky moc |
||
matak Profil |
#13 · Zasláno: 1. 6. 2008, 13:55:30
problém je, že si nejsem úplně jist co chceš, zkusme jednu věc po druhé,
1. jak uložit obrázek do souboru? imagepng($im, "názevsouboru.png"); to je jasné? co dál nefunguje? |
||
Watchick Profil * |
#14 · Zasláno: 1. 6. 2008, 16:13:36
No to jsem pochopil :-) otázkou mi ale zůstává pro, když mam
header("Content-type: image/png"); $user = $_GET['user']; $file = $user . ".png"; $i=0; while (file_exists($path.$file)) { $pos = strrpos($file, "."); $ext = strtolower(substr($file , $pos+1)); if (preg_match("/.+-CID(d+).[a-zA-Z]{3,4}$/", $file)) { $file = preg_replace("/(.+)(-CIDd+)(.[a-zA-Z]{3,4}$)/", "$1-CID".$i, $file); } elseif (preg_match("/.+(.)[a-zA-Z]{3,4}$/", $file)) { $file = preg_replace("/(.+)(.[a-zA-Z]{3,4})$/", "$1-CID".$i, $file); } else { $image = "FILE-CID".$i.".".$ext; } $i++; $file = $file.".".$ext; } $im = imagecreatefrompng($file); $user_width = imagettfbbox(9, 0, "tahoma.ttf", $user); $x_value = (200 - ($user_width[2] + 101)); $color = imagecolorallocate($im, 165, 164, 164); imagettftext($im, 8, 0, $x_value, 14, $color, "tahoma.ttf", $user); imagepng($im, "názevsouboru.png"); imagedestroy($im); tak to nefunguje? |
||
matak Profil |
#15 · Zasláno: 1. 6. 2008, 16:46:35
co přesně ti nefunguje řešme jednu věc po druhé, napiš další věc co nefunguje nebo hlášku kterou ti to pošle
|
||
Watchick Profil * |
#16 · Zasláno: 1. 6. 2008, 17:23:03
jinak tady to je žádnou hlášku to neukazuje, akorát to nefunguje
|
||
matak Profil |
#17 · Zasláno: 1. 6. 2008, 17:26:05
popiš body co a jak má fungovat!
1. 2. 3. 4. atd. |
||
matak Profil |
#18 · Zasláno: 1. 6. 2008, 17:26:41
nebo mi napiš na icq, a pak sem dej až výsledek
|
||
Časová prodleva: 16 let
|
0