Image Magick na banánu

Napsal O webu (») 8. 3. 2009 v kategorii Banan.cz, přečteno: 4158×
obrazky/Imagick.jpg

Co to je?

ImageMagick® je software na vytváření, editování a skládání bitmapových obrázků. Může číst, konvertovat a zapisovat obrázky přes 100 formátů ( DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF atd.). Dá se použít k překladu, rotaci, zrcadlení, změně velikosti, změně barev obrázku nebo na speciální efekty jako vykreslený text či Bézierovy křivky.
ImageMagick je volne širitelný a kompatibilní s licencí GPL. Beží na všech operačních
systémech.

Pro funkce ImageMagicku využíváme vlastností určitého programovacího jazyka. Např. G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++), JMagick (Java), L-Magick (Lisp), NMagick (Neko/haXe), MagickNet (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP (PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK).

S použitím jazyka lze využít Image Magicku k editaci orázku dynamicky a automaticky. My používáme modul IMagick pro jazyk PHP.

Co vše ImageMagick umí

* Konverze formátu: konvertovat obrázek z jednoho formátu do druhého (např. PNG to JPEG)
* Transformace: změna velikosti, rotace, crop, otočení nebo úprava obrázku
* Průhlednost: vykreslení podílu viditelnosti obrázku
* Kreslení: přidání tvaru nebo textu do obrázku
* Dekorace: přidání obrysu nebo rámu do obrázku
* Speciální efekty: rozmazání, zostření, změna odstínu barev
* Animace: vytvoření GIF animačních sekvencí ze skupiny obrázků
* Texty & komentáře: vložení popisku nebo uměleckých textů do obrázku
* Identifikace obrázku: popis formátu a vlastností obrázku
* Skládání: překrývání obrazku
* Podpora Motion picture: čte a zapisuje obvyklé formáty obrázu použité v digitální filmové práci
* Obrázkový kalkulátor: použití matematických výrazu na obrázky nebo obrázkové kanály
* High dynamic-range obrázky: přesně reprezentuje široký okruh úrovní intensity v reálné scéně od nejstvětlejších, přímeho slunečního světla po nejhlubší tmavé stíny
* Podpora obrázku ve vysokém rozlišení: čte, zpracovává a zapisuje mega- a giga-pixelové obrázky

Verze na serverech

Verze na serveru b20:
imagick module version: 2.2.0
ImageMagick version: ImageMagick 6.4.2

Verze na serveru b17:
imagick module version: 2.0.1
ImageMagick version: ImageMagick 6.3.7

Příklad využití

Vytvoření zrcadlení
Jedná se o zmenšení obrázku a vytvoření dalšího otočeného zrcadlově vůči původnímu a průhledností do ztracena. (Průhlednost pouze u ImageMagick 6.2.9 nebo novější.)

Kód
<?php
/* Nacteni obrazku */
$im = new Imagick('test.jpg');

/* Vytvoreni miniatury obrazku */
$im->thumbnailImage(200, null);

/* Vytvoreni obrysu obrazku */
$im->borderImage(new ImagickPixel("white"), 5, 5);

/* Klonovani obrazku a pretoceni (zrcaleni) */
$reflection = $im->clone();
$reflection->flipImage();

/* Vytvoreni postupneho zeslabeni. Bude videt v zrcadleni */
$gradient = new Imagick();

/* Gradient musi byt dost velky na obrazek i obrys */
$gradient->newPseudoImage($reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black");

/* Slouceni zeslabeni a zrcadleni */
$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

/* Pridani pruhlednosti. Vyzaduje ImageMagick 6.2.9 nebo novejsi */
$reflection->setImageOpacity( 0.3 );

/* Vytvoreni noveho prazdneho platna */
$canvas = new Imagick();

/* Platno musi byt dost velke, aby pojmulo oba obrazky */
$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* Slouceni puvodniho obrazku a zrcadleni na platno */
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10);

/* Ulozeni do vytvupniho obrazku */
$canvas->writeImage('test.png');

/* Konecne zobrazeni puvodniho obrazku a upraveneho v platne */
echo "<table cellpading=5 cellspacing=10><tr valign=bottom><td>Původní obrázek: <br> <img src='test.jpg' title='Původní obrázek'></td>";
echo "<td>Změněný obrázek: <br> <img src='test.png' title='Změněný obrázek'></td></tr></table>";
?>


Výsledek
Původní obrázek:


Změněný obrázek:


Další příklady
http://cz2.php.net/manual/en/imagick.examples.php

Závěrem

Na serveru b20 i b17 běží IMagick řekl bych bez problému, jelikož je nainstalována verze vyšší než 6.2.9 funguje i průhlednost. Doba vytvoření upraveného obrázku je závislá jak na velikosti tak jeho kvalitě.
Autor: Ondřej Lipina
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel jedna a tři