Erste Schritte

Nach dem erfolgreichen Download der Phar Archive kann das erste kleine Anwendungsscript erstellt werden. Dazu legen wir die Datei myapp.php an.


include_once '/phar/alvine.framework-snapshot.phar';
include_once '/phar/alvine.image-snapshot.phar';

In dieser Datei holen wir uns ein Bild source.jpg.

Source

Das Bild muss im selben Verzeichnis liegen.

/** Quelle definieren; Import aus dem Dateisystem */
$source=new \Alvine\IO\File\File('source.jpg', 
       new \Alvine\IO\File\Directory(__DIR__));

$importer=new \Alvine\Image\Raw\Provider\File\Import($source);

// Bildobjekt aus Datei erstellen
$image=$importer->read();

Über das Imageobjekt können jetzt die einzelnen Operationen nacheinander durchgeführt werden.

// Bild bearbeiten
$image->resize(200, 200)->rotate(45)->mirror();

Jetzt wird noch ein Text eingefügt. Hierzu benötigt man die Schriftdatei.

$font=new \Alvine\Image\Font(
    new \Alvine\IO\File\File('arial.ttf', 
        new \Alvine\IO\File\Directory(__DIR__)), 
    new Alvine\Image\RGBColor(Alvine\Image\RGBColor::RED), 22);

// Text an Position 30, 110 im Winkel 45° setzen
$image->text('Hallo', 30, 110, $font, 45);

Das Laden und Speichern der Dateien erfolgt über die load() bzw. save() Methode. Je nach angegebenen MIME-Type wird ein anderes Format erstellt. Aktuell unterstützt die Komponente über die GDLib die Webformate JPG, GIF, PNG.

$file=new \Alvine\IO\File\File('export.png');

/** Export ins Dateisystem */
$export=new \Alvine\Image\Raw\Provider\File\Export($file);

$export->write($image, new \Alvine\Types\Mime\MIMEType('image/png'));

Das Ergebnis ist folgendes Bild export.png:

Source

Hier nochmal das gesamte Script



/** Quelle definieren; Import aus dem Dateisystem */
$source=new \Alvine\IO\File\File('source.jpg', 
       new \Alvine\IO\File\Directory(__DIR__));

$importer=new \Alvine\Image\Raw\Provider\File\Import($source);

// Bildobjekt aus Datei erstellen
$image=$importer->read();



// Bild bearbeiten
$image->resize(200, 200)->rotate(45)->mirror();



$font=new \Alvine\Image\Font(
    new \Alvine\IO\File\File('arial.ttf', 
        new \Alvine\IO\File\Directory(__DIR__)), 
    new Alvine\Image\RGBColor(Alvine\Image\RGBColor::RED), 22);

// Text an Position 30, 110 im Winkel 45° setzen
$image->text('Hallo', 30, 110, $font, 45);


$file=new \Alvine\IO\File\File('export.png');

/** Export ins Dateisystem */
$export=new \Alvine\Image\Raw\Provider\File\Export($file);

$export->write($image, new \Alvine\Types\Mime\MIMEType('image/png'));