November Black Friday C/C++ week
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Pouze tento týden sleva až 80 % na e-learning týkající se C/C++

Diskuze: Stahování obrázků

Aktivity (2)
Avatar
maxijoey
Člen
Avatar
maxijoey:1. července 10:01

Potřeboval bych vyřešit rychlostní problém při stahování obrázků. Děje se následující. Aplikace přebírá odkazy, z nich stáhne obrázek. Následně skotroluje jeho velikost a pokud přesahuje předepsané rozměry zmenší ho a uloží na dané umístění na disku. Pokud je ok jde tam rovnou.
Problém je že to celé může trvat klidně 3 vteřiny jeden obrázek co jsem pozoroval.

Spíš mě jen zajímá zda je to normální čas, nebo stále někde něco dělám blbě.

Zkusil jsem: Zkoušel jsem různě manipulovat se zpracujícím kodem a experimentovat, ale čas pořád stejný.

Chci docílit: Rád bych pokud by se to komplet povedlo pod vteřinu na jeden obrázek.

 
Odpovědět
1. července 10:01
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:1. července 13:47

Podle toho kodu tezko rici, kde je problem. Zadny jsem nedal? Prave :)

Je mozne, ze obrazky, ktere tam tlacis maji pres 20 MB. Php funkce nejsou zrovna kdovijak optimalizovane. Muzes to vyzkouset na nejnovejsi verzi php (odstranuji bugy postupne). Muzes se zkusit podivat, jak to resi v novem php. Muzes zkusit linuxovy ImageMagick, pres cmd, ten by mohl byt rychlejsi.
google = new php image transform

Ono, vetsinou tahas obrazek pres http protokol. 20 MB je desne pomale. Tahas to do tmp. Tady je dobre se zastavit, nepouzivat move_upload. Obrazek v tmp porovnat na velikost. A az pak se rozhodnout na move_upload nebo transformaci.
Z hlediska bezpecnosti bys mel pouzit transformaci vzdy, nebo aspon jakesi vycisteni jpeg hlavicek a mozna malinkou manipulaci s pixely. To je ochrana proti utoku, kdy do obrazku podstrkuji informace, ktere tam nepatri. Takhle bys zlocincum sebral vitr z plachet. Na ukor vetsi zateze, ale.
Navic, lze udelat obrazek, ktery se tvari jako obrazek, ale je spustitelny i pres web adresu jako php nebo mozna c kod. Nevim, nezkoumal jsem tu technologii. Mozna je to klasicky c/php kod, ktery default vraci obrazkova data. Ale kdyz das do adresy nejaky parametr, tak spusti jinou cast. Vlastni transformaci bys docilil toho, ze prevezmes obrazkova data a zbytek kodu zahodis. Takze si muzou hackovat, jak chteji :)

 
Nahoru Odpovědět
1. července 13:47
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
maxijoey
Člen
Avatar
maxijoey:1. července 13:58

Díky za odpověď, i když ne přímo, co jsi napsal se mi taky hodí :-). Jinak obrázky jsou normál jpg kde největší má možná 2 MB. Proto mě zaráží ta rychlost zpracování.

 
Nahoru Odpovědět
1. července 13:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.