<?php

require 'phImaginator/phImaginator.class.php';

$rsis = new phImaginator();


/*
 * Quelldateien hinzufügen
 *
 * Dateien können einzeln oder gesammelt hinzugefügt werden
 *
 * 1. Eine einzelne Datei, z. B. "quellordner/bildchen/bild1.jpg"
 * 2. Ein ganzes Verzeichnis, z. B. "quellordner/bildchen"
 * 3. Ein Array von Dateien, z. B. "array('datei1.jpg', 'datei2.jpg')"
 * 4. Ein Array von Verzeichnissen, z. B. "array('order1', 'ordner2')"
 * 5. Ein Array von Dateien und Verzeichnissen
 */
$rsis->add('demosource/amy-adams.jpg');


/*
 * Verkleinern auf eine maximale Breite
 *
 * Die Höhe wird proportional angepasst
 */
//$rsis->Resize_fitWidth(300);


/*
 * Verkleinern auf eine maximale Höhe
 *
 * Die Breite wird proportional angepasst
 */
//$rsis->Resize_fitHeight(300);


/*
 * Verkleinern auf eine maximale Höhe und Breite
 *
 * Breite und Höhe werden proportional so angepasst, dass weder Breite noch Höhe die angegebenen
 * Maximal-Werte überschreiten
 */
//$rsis->Resize_fitBoth(200, 200);


/*
 * Skalieren auf eine feste Breite und Höhe
 *
 * Breite und Höhe werden aproportional so angepasst, dass beide den angegebenen Werten entsprechen
 */
//$rsis->Resize_scale(5000, 5000);


/*
 * Einboxen
 *
 * Breite oder Höhe werden poroportional so angepasst, dass die kürzere Seite in die Box passt.
 * Der auf beiden Seiten überstehende Rest auf der Achse der längeren Seite des Bildes wird abgeschnitten.
 */
//$rsis->Box_fit(250, 250);


/*
 * Ausschnitt
 *
 * Ein Ausschnitt der Größe P1 x P2 wird ab der Position P3/P4 ausgeschnitten
 */
//$rsis->Box_crop(500, 500, 50, 50);


/*
 * Spiegeln
 *
 * Spiegelt das Bild um die horizontale bzw. vertikale Achse oder um beide Achsen
 */
//$rsis->Flip_horizontal();
//$rsis->Flip_vertical();
//$rsis->Flip_both();


/*
 * Rotieren
 *
 * Rotiert das Bild um P1°.
 * Die Farbe des Hintergrundes wird über P2 definiert
 * P3 bestimmt die Opazität (wirkt sich nur bei der Generierung von PNG aus)
 */
//$rsis->Rotate_degree(45, '#000000', 50);


/*
 * Rotieren ins Querformat
 *
 * Rotiert das Bild so, dass die Breite größer ist als die Höhe
 */
//$rsis->Rotate_landscape();


/*
 * Rotieren ins Hochformat
 *
 * Rotiert das Bild so, dass die Höhe größer ist als die Breite
 */
//$rsis->Rotate_portrait();


/*
 * Rahmung außen
 *
 * Setzt einen Rahmen der Breite P1 und Farbe P2 um das Bild
 * Die Abmessungen des Bildes werden vergrößert (Rahmen außen am Bild)
 */
//$rsis->Border_outer(20, '#00ff00');


/*
 * Rahmung innen
 *
 * Setzt einen Rahmen der Breite P1 und Farbe P2 in das Bild
 * Die Abmessungen des Bildes bleiben unverändert
 * Der Rahmen überdeckt den äußeren Bereich des Bildes
 */
//$rsis->Border_inner(500, '#00ff00');


/*
 * Rahmung innen Variante
 *
 * Setzt einen Rahmen der Breite P1 und Farbe P2 in das Bild
 * Die Abmessungen des Bildes bleiben unverändert
 * Der Rahmen überdeckt den äußeren Bereich des Bildes nicht, das Bild wird hingegen aproportional
 * so skaliert, dass es innerhalb des Rahmens passt
 */
//$rsis->Border_stretched(50, '#00ff00');


/*
 * Farbtonänderung
 *
 * Farben werden angepasst. Schwarz und weiß bleiben erhalten
 * RGB (P1, P2, P3)
 * Sättigung (P4)
 */
//$rsis->Filter_hue(50, 10, 200, 100);


/*
 * Sepia
 *
 */
//$rsis->Filter_sepia();


/*
 * PHP Standard-Filter (Rauschen, Weichzeichnen usw.)
 * http://php.net/manual/de/function.imagefilter.php
 *
 */
//$rsis->Filter_common(IMG_FILTER_MEAN_REMOVAL);


/*
 * Farbreduktion
 *
 * Reduziert die Farben des Bildes um P1%
 */
//$rsis->Filter_reduceColors(50);


/*
 * Beschriftung - Schriftart und Format
 *
 * Definiert die Schrift für Beschriftungen
 *
 * P1: Font file
 * P2: Font size
 * P3: Font colour
 * P4: Transparenz
 */
//$rsis->setFont('BAUHS93.ttf', 30, '#000000', 50);


/*
 * Beschriftung Freitext
 *
 * Beschriftet das Bild
 *
 * P1: Text
 * P2: Horizontale Position
 * P3: Vertikale Position
 * P4: Rotation
 */
//$rsis->Write_text('Hallo Du', phImaginator::POSITION_CENTER, phImaginator::POSITION_MIDDLE, 45);


/*
 * Beschriftung Dateiinfo
 *
 * Beschriftet das Bild mit Dateiinformationen
 *
 * P1: Horizontale Position
 * P2: Vertikale Position
 */
//$rsis->Write_fileInfo(phImaginator::POSITION_CENTER, phImaginator::POSITION_MIDDLE);


/*
 * Rechteck zeichnen
 *
 * Zeichnet ein Rechteck in das Bild
 *
 * P1: Horizontale Position
 * P2: Vertikale Position
 * P3: Breite absolut in Pixeln (integer) oder prozentual (string)
 * P4: Höhe absolut in Pixeln (integer) oder prozentual (string)
 * P5: Farbe
 * P6: Opazität
 */
//$rsis->Draw_rectangle(phImaginator::POSITION_LEFT, phImaginator::POSITION_MIDDLE, '50%', 30, '#141615', 50);


/*
 * Stempeln
 *
 * Stempelt ein Bild mit einem Stempel
 *
 * P1: Stempel-Quelldatei
 * P2: Horizontale Position
 * P3: Vertikale Position
 * P4: Opazität
 * P5: Größenanpassung des Stempels (FITTING_WIDTH, FITTING_HEIGHT, FITTING_BOTH oder false)
 */
//$rsis->Mask_stamp(
//	'bug.png',
//	phImaginator::POSITION_CENTER,
//	phImaginator::POSITION_MIDDLE,
//	50
//);


/*
 * Runde Ecken (standard, relativ hart)
 *
 * Rundet die Ecken mit P1 Pixeln ab. Bei PNG-Ausgabe sind die Ecken transparent
 */
//$rsis->Mask_corners(25);


/*
 * Runde Ecken (besser, smoother)
 *
 * Rundet die Ecken mit P1 Pixeln ab. Bei PNG-Ausgabe sind die Ecken transparent.
 * P2 gibt an, welche Ecken gerundet werden sollen (POSITION_ALL & Co.)
 */
//$rsis->Mask_betterCorners(25, phImaginator::POSITION_ALL);


/*
 * Reflexionen
 *
 * Reflektiert (Wasserspiegel) das Bild. Bei Ausgabe als PNG ist die Reflexion teiltransparent.
 *
 * P1: Höhe der Reflexion in Prozent (string) oder Pixeln (integer)
 * P2: Abstand zwischen Bild und Reflexion in Pixeln
 * P3: Proportion der Reflexion (float)
 * P4: Anfangsopazität der Reflexion
 * P4: Verlaufsmodus (TRANSITION_LOGARITHMIC, TRANSITION_EXPONENTIAL oder TRANSITION_LINEAR)
 */
//$rsis->Reflect_common('85%', 2, 1.2, 65, phImaginator::TRANSITION_LOGARITHMIC);


/*
 * Histogramm
 *
 * Erstellung eines Histogramms
 */
//$rsis->Measure_histogram();


/*
 * Dateinamen Präfix / Suffix
 *
 * Fügt dem Dateinamen beim Speichern einen Zusatz zu
 *
 * P1: Präfix
 * P2: Suffix
 */
//$rsis->nameAdd('vorne', 'hinten');


/*
 * Speichern
 *
 * Fügt dem Dateinamen beim Speichern einen Zusatz zu
 *
 * P1: Typ (IMAGETYPE_JPEG, IMAGETYPE_PNG oder IMAGETYPE_GIF)
 * P2: Qualität (JPEG und tw PNG)
 * P3: Ziel (Pfad)
 */
$rsis->save(IMAGETYPE_JPEG, 85, './');






// Nicht fertige Module
////////$rsis->Collage_ordered(600, 400, '#FF0000', 50);
////////$rsis->Collage_fitted(600, 400, '#FF0000', 50);
////////$rsis->Merge_fitted(300, 200, 50);



?>