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

| |
Ein Bild on-the-fly horizontal spiegeln
|
Beispielaufgabe
Ein Bild soll on-the-fly horizontal 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 letzten Pixelspalte von $rOrgImage in die erste Pixelspalte des $rReturnImage kopiert, dann die vorletzte Pixelspalte von $rOrgImage in die zweite Pixelspalte von $rReturnImage usw. Nach Beendigung der Schleifendurchläufe befindet sich in $rReturnImage das horizontal 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 );
$iOrgImageX -= 1;
switch ( $iOrgImageType ) { case 1: $rOrgImage = imagecreatefromgif ( $strOrgImage ); break; case 2: $rOrgImage = imagecreatefromjpeg ( $strOrgImage ); break; case 3: $rOrgImage = imagecreatefrompng ( $strOrgImage ); }
$rReturnImage = imagecreatetruecolor ( $iOrgImageX + 1, $iOrgImageY );
for ( $iX = 0; $iOrgImageX >= 0; $iOrgImageX-- ) { for ( $iY = 0; $iY <= $iOrgImageY; $iY++ ) { $iColorIndex = imagecolorat ( $rOrgImage, $iOrgImageX, $iY ); imagesetpixel ( $rReturnImage, $iX, $iY, $iColorIndex ); }
$iX++; }
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 horizontal gespiegelt </title> </head> <body> Bild horizontal gespiegelt:<br /> <br /> <img src="reflectImage.php?d=picture.jpg" /> </body> </html>
|
Zielbild: picture.jpg

Ausgabebeispiel: Browseransicht

|
|
|
|
|


|