Autor Zpráva
doominick
Profil *
Řešil jsem na webu problém jak dostat k sobě obrázek z cízí domény... to se mi nakonec povedlo ale onen obrázek je načten jako textový řetězec. (Tohle není žádná extravagance, ale nutnost, protože na serveru mám safe_mode on, allow_url_include off a allow_url_fopen off, takže jiný způsob jak dostat obrázek z cizí domény v tom případě neznám)
Pokud ho vypíšu (echem) a přidám k němu správnou hlavičku tak se i zobrazí jako skutečný obrázek a s originálem na cizím webu je na bit shodý (má stejné informace o datovém typu, odpovídající rozměry a vůbec všechny meta informace).

Problém je v tom, že když o tom obrázku chci zjistit nějaké informace nevím jak na to (textový řetězec obrázku mám v $obrazek) a teď co s ním... běžné funkce php pro práci s obrázky (http://us2.php.net/manual/en/ref.image.php) mi takhle nechtějí pracovat (imagejpeg($obrazek); nejde, imagecreatefromjpeg($obrazek); nejde, getimagesize($obrazek); nejde... prostě nic ). Tyhle funkce chtějí buď jméno souboru obrázku (které je na cizí doméně a kvůli omezení se tam nedotanu), nebo proměnou typu obrázek což je asi něco mírně jiného.

Můžu tedy z toho řetězce nějak rozumně udělat obrázek a zjisti třeba jeho rozměry aniž bych ho musel uložit a znovu načíst (vždyť už ho tady mám načtený celý) ?
doominick
Profil *
Tak už jsem na to přišel sám... řešením bude nette framework, konkrétně Image::fromString($obrazek); a je to viz: http://api.nettephp.com/0.9.0/Nette/Image.html

už jsem se bál že nikdo s metodou obrázku v řetězci nepočítá
Majkl578
Profil
vzdyt na to je i samotna funkce: http://us2.php.net/manual/en/function.imagecreatefromstring.php
doominick
Profil *
no výborně... to bude asi ta samá
Majkl578
Profil
ano, to je... http://github.com/dg/nette/blob/ac84130a8cecbc2c80891d5581db895ee3769d5b/Nette/Image.php#LID131
nette pouzivam a muzu jej doporucit, ale pokud ti jde ciste jen o jednu funkci, tak bych mozna pouzil primo ji no ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0