Knihoven pro manipulaci s obrázky je mnoho, byly ale buď příliš složité, nebo neuměly umístit fotku do obdélníku (rectangle). Proto jsem si vytvořil jednoduchou třídu, která vše co potřebuji zvládne a je jednoduchá na použití.
Také důvod, proč jsem si ji napsal je, abych si vyzkoušel napsat testy. Zatím jsem to nikdy nedělal, a vždy se to obešlo i bez testů. Tak alespoň nějaký malý si udělám teď, o tom ale v jednom z dalších článků.
Kde ji najdu?
Na GitHubu, tam je a bude. I případné aktualizace a opravy. O těch už ale nebudu vydávat nový článek.
UPDATE 11.11.17: Nově také na Packagist pro možnou instalaci pomocí Composeru.
Co je tak super na mojí knihovně?
Zde jsou nějaké základní body, kterými jsem se řídil:
- Jednoduchost - Základní chování je i defaultní, až parametry lze dosáhnout něčeho navíc
- Počítání využité paměti, proti zamezení FATAL ERRORu při alokaci příliš místa v RAM paměti, což může být běžný problém při načítání velkých obrázků s nizkým memory_limitem
- Metody lze řetězit za sebe, většina funkcí totiž vrací instanci. Zápis proto jde zkrátit na jeden řádek
- Stačí cesta k obrázku, není potřeba specifikovat, jestli jde o JPG nebo jiný typ. Knihovna to rozpozná sama
Dokumentace? Není potřeba, snad
Nemám sepsanou dokumentaci. Všechny funkce a konstanty jsem okomentoval, a z ukázek kódu a popisu funkcí snad každý zvládne knihovnu využít. Nebudu zde přepisovat co je v README souboru, tak jen jedna ukázka kódu, jakým způsobem se s mou knihovnou dá pracovat. Více ukázek na již zmíněném GitHubu.
// Od zveřejnění balíčku na Packagist používá Resampler namespace use Resampler\Resampler; try{ $img = Resampler::load("path/to/file.jpg") // Načtení souboru ->resize(300, 200) // Zmenšení na maximální rozměry 300x200 (proporce se zachovají) ->rotate(Resampler::ROTATE_CW) // Otočení o 90° po směru hodinových ručiček ->save("path/to/thumb.jpg") // Uložíme jako JPG soubor ->output("jpg"); // Jako JPG obrázek odešleme také do prohlížeče }catch(Exception $e){ die($e->getMessage()); }
Jestli knihovnu využijete, podělte se se mnou v komentářích ;) Děkuji
K tomuto článku již není možné přidávat další komentáře
Komentáře
To vypadá skvěle, určitě to příležitostně vyzkouším.
Díky za zveřejnění!