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
.
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
:
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'));