:: 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 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
|
|
|
|
|
|