| |
| * Link führt ins Internet |
|

| |
Ein Bild on-the-fly vertikal spiegeln
|
Beispielaufgabe
Ein Bild soll on-the-fly vertikal gespiegelt werden.
Beschreibung
Der folgende Code Snippet durchläuft zwei FOR-Schleifen, die erste ist für die X-Achse und die zweite für die Y-Achse. Innerhalb der Schleifen werden die Pixel der ersten Pixelspalte von $rOrgImage in die erste Pixelspalte des $rReturnImage von unten nach oben kopiert (Pixel für Pixel), dann die zweite Pixelspalte von $rOrgImage in die zweite Pixelspalte des $rReturnImage (von unten nach oben kopiert) usw. Nach Beendigung der Schleifendurchläufe befindet sich in $rReturnImage das vertikal gespiegelte Abbild von $rOrgImage. Aufgerufen wird das Script zum Beispiel im IMG-Tag mit dem einzigen Query-Parameter "d", der das betreffende Bild angibt.
<?PHP $strOrgImage = './path/to/image/' . $_GET['d'];
list ( $iOrgImageX, $iOrgImageY, $iOrgImageType ) = getimagesize ( $strOrgImage );
switch ( $iOrgImageType ) { case 1: $rOrgImage = imagecreatefromgif ( $strOrgImage ); break; case 2: $rOrgImage = imagecreatefromjpeg ( $strOrgImage ); break; case 3: $rOrgImage = imagecreatefrompng ( $strOrgImage ); }
$rReturnImage = imagecreatetruecolor ( $iOrgImageX, $iOrgImageY );
for ( $iX = 0; $iX < $iOrgImageX; $iX++ ) { $iYr = 0; for ( $iY = ( $iOrgImageY - 1 ); $iY >= 0; $iY-- ) { $iColorIndex = imagecolorat ( $rOrgImage, $iX, $iY ); imagesetpixel ( $rReturnImage, $iX, $iYr, $iColorIndex );
$iYr++; } }
switch ( $iOrgImageType ) { case 1: header ( 'content-type: image/gif' ); imagegif ( $rReturnImage ); break; case 2: header ( 'content-type: image/jpeg' ); imagejpeg ( $rReturnImage ); break; case 3: header ( 'content-type: image/png' ); imagepng ( $rReturnImage ); }
imagedestroy ( $rOrgImage ); imagedestroy ( $rReturnImage ); ?>
|
Anwendungsbeispiel
<html> <head> <title> BEISPIEL: Bild vertikal gespiegelt </title> </head> <body> Bild vertikal gespiegelt:<br /> <br /> <img src="reflectImageVertical.php?d=picture.jpg" /> </body> </html>
|
Zielbild: picture.jpg

Ausgabebeispiel: Browseransicht

|
|
|
|
|


|