Portál AbcLinuxu, 13. května 2025 07:20

Dotaz: content server

8.12.2015 01:19 pletiplot | skóre: 14
content server
Přečteno: 392×
Odpovědět | Admin
Potřebuju poradit vhodný software. Mám zadání: deamon, kterému pošlu obrázek, on si ho uloží. Pak si ho chci vyzvednout v nějakém jiném rozlišení, daemon mi ho zkonvertuje, pošle clientovi a uloží výsledek pro příště.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 8.12.2015 02:17 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: content server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Toto je v PHP na pár řádek. Asi bude rychlejší si to napsat, než to hledat.

Jeden zabezpečený script na upload (učebnicový příklad na <input type="file">), výsledek uložit vhodně pojmenovaný do volně přístupného adresáře a v serveru nastavit obsluhu 404 na script pro konverzi obrázku (najdi si už hotovou knihovnu, nepiš to znovu, protože exif rotace u JPEG, animace u GIF a průhlednost u PNG), který ho vytvoří a pošle na něj redirect (tedy na stejnou URL) nebo použije X-SendFile. Jakmile obrázek už bude existovat, tak se obsluha 404 nedostane ke slovu a server pošle obrázek rovnou. Je potřeba je jen šikovně pojmenovávat, aby ze zmenšenin šlo poznat originální soubor.
Hello world ! Segmentation fault (core dumped)
8.12.2015 02:51 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: content server
404 bych do toho netahal. V .htaccess se přece dá přesměrovat odkaz na neexistující soubor na skript v PHP, který může tu konverzi provést. Jen je nutné ošetřit možný souběh.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 8.12.2015 12:02 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: content server
U lighttpd je jednodušší nastavit obsluhu 404. Ale u Apache máš pravdu, že to je lepší takto. Jinak to však vyjde na stejno a princip je pořád stejný.
Hello world ! Segmentation fault (core dumped)
8.12.2015 13:16 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: content server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to sice na pár řádek, ale snadno se to může začít komplikovat, pokud chce člověk ořezávat, aplikovat filtry atd.

Na ořez je skutečně nejlepší použít hotové řešení, ale ne všechny knihovny umí dobře různé varianty. Zachování poměru stran je standard, ale třeba už s kombinací přeškálování a ořezu (varianty "vyplnit" nebo "doplnit") může člověk narazit. Dál mohou zlobit třeba různé hraniční stavy („požaduji ořez o 1px větší než je obrázek“). Takže dotaz na kvalitní software je docela relevantní.

V javě používám s úspěchem https://github.com/coobird/thumbnailator V php jsem si napsal vyhovující řešení s pomocí knihovny GD sám. Naopak problémy jsem měl s https://github.com/thebuzzmedia/imgscalr a s vestavěným editorem obrázků v http://www.brightspot.com/
-- OldFrog
Jendа avatar 9.12.2015 19:53 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: content server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Těžko bude něco hotového. Python + socketserver + imagemagick. Pro ten server ukradni třebas Paplón z deky.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.