:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
|
|
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
|
|
|
|
|
|