Resampler.php - rychlá editace obrázků

13.9.2016 (aktualizováno 11.11.2017) Pavel PHP

Knihovna vlastní tvorby pro zmenšování či zvětšování obrázků v PHP, s pouze základními možnostmi jako je resize, crop, rectangle a rotace. S podporou JPG, PNG a GIF obrázků. Vše co je v běžném systému potřeba.

Resampler.php - rychlá editace obrázků

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

Přidat komentář

Právě odpovídáte na existující komentář. Zrušit

Komentáře

Roman

13.9.2016 11:22

To vypadá skvěle, určitě to příležitostně vyzkouším.
Díky za zveřejnění!

Odpovědět

Novinky z blogu

Z internetu na lokální server pomocí ngrok

ngrok je nástroj, který umožňuje vytvořit zabezpečený tunel z veřejné URL k lokálnímu serveru na vašem stroji. Můžete tak k vašemu localhostu přistupovat...

Další články