Bild spiegeln
- Conny Kramer
- Zauberer der Bergwiesen
- Beiträge: 453
- Registriert: 25. Apr 2007, 17:31
- Wohnort: da wo das Gras noch schmeckt.. xD
- Kontaktdaten:
Bild spiegeln
Ich brauche eine Funktion mit der ich Bilder vertikal spiegeln kann. Die Funktion muss in php geschrieben sein und funktionieren. Das Bildformat ist PNG.
Wär schön wenn jemand so eine Funktion hier posten würde.
Danke
Wär schön wenn jemand so eine Funktion hier posten würde.
Danke
Gehen 2 Irre durch die Wüste
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
- Blue.Shark
- großer Laubbär
- Beiträge: 2864
- Registriert: 5. Okt 2008, 21:27
Re: Bild spiegeln
Einfach mal googlen?
Keine Ahnung ob das richtig ist, ich kenn mich mit php nicht aus 
SpoilerShow
<?php
/**
* imagereflection
*
* Versieht ein Bild mit einem Spiegeleffekt.
*
* @author Jan Papenbrock, www.solvium.de
* @version 0.1 (Apr-13 2007)
*
* @param $source Quellbild
* @param $background Array, das die RGB-Werte der Hintergrundfarbe enthält,
* wobei R = [0], G = [1], B = [2]
* @param $gradient Enthält die Größe des Verlaufs, anteilig zur Bildgröße
* @param $shadow Enthält die Größe des Schattens, anteilig zur Bildgröße
*
* @return das fertige Bild
*/
function imagereflection ( $simg, $background = array (255, 255, 255), $gradient = 0.55, $shadow = 0.1 ) {
$simgx = imagesx($simg);
$simgy = imagesy($simg);
// Höhen von Verlauf und Schatten in px bestimmen
$gradientH = round($simgy * $gradient);
$shadowH = round($simgy * $shadow);
// Zielbild erzeugen
$dimg = imagecreatetruecolor($simgx, $simgy + $gradientH );
// und mit Hintergrundfarbe füllen
imagefill($dimg, 0, 0, imagecolorallocate($dimg, $background[0], $background[1], $background[2]));
// Quellbild kopieren
imagecopy($dimg, $simg, 0, 0, 0, 0, $simgx, $simgy);
// und das gespiegelte Bild einfügen
$simg = imageflip($simg, 1);
imagecopy($dimg, $simg, 0, $simgy, 0, 0, $simgx, $simgy);
// Verlauf erzeugen
$alphaF = 60 / ($gradientH - 1);
for ($i = 0; $i < $gradientH; $i++) {
$col = imagecolorallocatealpha($dimg, $background[0], $background[1], $background[2], 60 - $i * $alphaF);
imageline($dimg, 0, $simgy + $i, $simgx, $simgy + $i, $col);
}
// Schatten erzeugen
$alphaF = 60 / ($shadowH - 1);
for ($i = 0; $i < $shadowH; $i++) {
$col = imagecolorallocatealpha($dimg, 160, 160, 160, $i*$alphaF + 67);
imageline($dimg, 0, $simgy + $i, $simgx, $simgy + $i, $col);
}
// Bild zurückgeben
return $dimg;
}
?>
/**
* imagereflection
*
* Versieht ein Bild mit einem Spiegeleffekt.
*
* @author Jan Papenbrock, www.solvium.de
* @version 0.1 (Apr-13 2007)
*
* @param $source Quellbild
* @param $background Array, das die RGB-Werte der Hintergrundfarbe enthält,
* wobei R = [0], G = [1], B = [2]
* @param $gradient Enthält die Größe des Verlaufs, anteilig zur Bildgröße
* @param $shadow Enthält die Größe des Schattens, anteilig zur Bildgröße
*
* @return das fertige Bild
*/
function imagereflection ( $simg, $background = array (255, 255, 255), $gradient = 0.55, $shadow = 0.1 ) {
$simgx = imagesx($simg);
$simgy = imagesy($simg);
// Höhen von Verlauf und Schatten in px bestimmen
$gradientH = round($simgy * $gradient);
$shadowH = round($simgy * $shadow);
// Zielbild erzeugen
$dimg = imagecreatetruecolor($simgx, $simgy + $gradientH );
// und mit Hintergrundfarbe füllen
imagefill($dimg, 0, 0, imagecolorallocate($dimg, $background[0], $background[1], $background[2]));
// Quellbild kopieren
imagecopy($dimg, $simg, 0, 0, 0, 0, $simgx, $simgy);
// und das gespiegelte Bild einfügen
$simg = imageflip($simg, 1);
imagecopy($dimg, $simg, 0, $simgy, 0, 0, $simgx, $simgy);
// Verlauf erzeugen
$alphaF = 60 / ($gradientH - 1);
for ($i = 0; $i < $gradientH; $i++) {
$col = imagecolorallocatealpha($dimg, $background[0], $background[1], $background[2], 60 - $i * $alphaF);
imageline($dimg, 0, $simgy + $i, $simgx, $simgy + $i, $col);
}
// Schatten erzeugen
$alphaF = 60 / ($shadowH - 1);
for ($i = 0; $i < $shadowH; $i++) {
$col = imagecolorallocatealpha($dimg, 160, 160, 160, $i*$alphaF + 67);
imageline($dimg, 0, $simgy + $i, $simgx, $simgy + $i, $col);
}
// Bild zurückgeben
return $dimg;
}
?>

Macht alle bei meinem Spiel mit -> Wörter raten
Meine aktuelle User-Idee: Errungenschaften auf Zeit
Meine Wunsch-Idee: Das Haus der Statistiken, Liebligskarte: Etume - das Flusstal. Andere Userideen: Zauber der globalen Wunder
Meine aktuelle User-Idee: Errungenschaften auf Zeit
Meine Wunsch-Idee: Das Haus der Statistiken, Liebligskarte: Etume - das Flusstal. Andere Userideen: Zauber der globalen Wunder
- Latzhosenträger
- großer Laubbär
- Beiträge: 3309
- Registriert: 2. Apr 2008, 15:14
Re: Bild spiegeln
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.
Anwengungsbeispiel:
Quelle
Code: Alles auswählen
<?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 );
?>
Code: Alles auswählen
<html>
<head>
<title>
BEISPIEL: Bild horizontal gespiegelt
</title>
</head>
<body>
Bild horizontal gespiegelt:<br />
<br />
<img src="reflectImage.php?d=picture.jpg" />
</body>
</html>
- Latzhosenträger
- großer Laubbär
- Beiträge: 3309
- Registriert: 2. Apr 2008, 15:14
Re: Bild spiegeln
Kann ja nur falsch sein. Er will ja keinen Spiegeleffekt.Blue.Shark hat geschrieben:* Versieht ein Bild mit einem Spiegeleffekt.
- Blue.Shark
- großer Laubbär
- Beiträge: 2864
- Registriert: 5. Okt 2008, 21:27
Re: Bild spiegeln
Ok dann ignoriert meine Nachricht^^
Macht alle bei meinem Spiel mit -> Wörter raten
Meine aktuelle User-Idee: Errungenschaften auf Zeit
Meine Wunsch-Idee: Das Haus der Statistiken, Liebligskarte: Etume - das Flusstal. Andere Userideen: Zauber der globalen Wunder
Meine aktuelle User-Idee: Errungenschaften auf Zeit
Meine Wunsch-Idee: Das Haus der Statistiken, Liebligskarte: Etume - das Flusstal. Andere Userideen: Zauber der globalen Wunder
- Conny Kramer
- Zauberer der Bergwiesen
- Beiträge: 453
- Registriert: 25. Apr 2007, 17:31
- Wohnort: da wo das Gras noch schmeckt.. xD
- Kontaktdaten:
Re: Bild spiegeln
Latzhosenträger das geht bei mir iwie nich^^
Gehen 2 Irre durch die Wüste
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
- Latzhosenträger
- großer Laubbär
- Beiträge: 3309
- Registriert: 2. Apr 2008, 15:14
Re: Bild spiegeln
Dann google selbst..Conny Kramer hat geschrieben:Latzhosenträger das geht bei mir iwie nich^^
- Conny Kramer
- Zauberer der Bergwiesen
- Beiträge: 453
- Registriert: 25. Apr 2007, 17:31
- Wohnort: da wo das Gras noch schmeckt.. xD
- Kontaktdaten:
Re: Bild spiegeln
hab ich, hab aber nix gefunden was funktioniert, deswegen frag ich ja du 5 watt birne
ich möchte das also so haben:
ich möchte das also so haben:
Code: Alles auswählen
function spiegel($img){
....code....
return $img;
}
Gehen 2 Irre durch die Wüste
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
Re: Bild spiegeln
SpoilerShow
Code: Alles auswählen
define("FLIP_X", 1); // spiegeln an X-Achse
define("FLIP_Y", 2); // spiegeln an Y-Achse
define("FLIP_BOTH", 4); // Punktspiegelung im Mittelpunkt
/**
* image_flip
*
* spiegelt ein Bild in eienr bestimmten Richtung
*
* @ToDo:
* - kopieren der Pixel funktioniert nicht korrekt bei weißen (eventuell auch schwarzen) Pixeln
*
* @param $source Ressource Zeiger auf das Bild, was gespiegelt werden soll
* @param $flip int Richtung in die gespiegelt wird (FLIP_X, FLIP_Y, FLIP_BOTH)
* @return Ressource
*/
function image_flip($source, $flip) {
$x_max = imagesx($source);
$y_max = imagesy($source);
$im = imagecreatetruecolor($x_max, $y_max);
for ($y_i = 0; $y_i <= $y_max; ++$y_i) {
for ($x_i = 0; $x_i <= $x_max; ++$x_i) {
$color = imagecolorat($source, $x_i, $y_i);
$coords = flip_coords($x_i, $y_i, $x_max, $y_max, $flip);
imagesetpixel($im, $coords[0], $coords[1], $color);
}
}
return $im;
}
/**
* flip_coords
*
* spiegelt Koordinaten in bestimmte Richtung
*
* @param $x int reele x-Koordinate
* @param $y int reele y-Koordinate
* @param $x_max int Breite des Koordinatensystems
* @param $y_max int Breite des Koordinatensystems
* @return array
*/
function flip_coords($x, $y, $x_max, $y_max, $direction) {
$coords = array($x, $y);
if ($direction == FLIP_X || $direction == FLIP_BOTH) {
$coords[0] = $x_max-$x;
}
if ($direction == FLIP_Y || $direction == FLIP_BOTH) {
$coords[1] = $y_max-$y;
}
return $coords;
}
http://fwrails.net
lokale Styes in Google Chrome
lokale Styles in Gologle folgen...
I'm beginning to feel like a Spam God
lokale Styes in Google Chrome
lokale Styles in Gologle folgen...
I'm beginning to feel like a Spam God
Re: Bild spiegeln
Erst frech werden, dann noch fordernConny Kramer hat geschrieben:hab ich, hab aber nix gefunden was funktioniert, deswegen frag ich ja du 5 watt birne
ich möchte das also so haben:
- Conny Kramer
- Zauberer der Bergwiesen
- Beiträge: 453
- Registriert: 25. Apr 2007, 17:31
- Wohnort: da wo das Gras noch schmeckt.. xD
- Kontaktdaten:
Re: Bild spiegeln
selbst schuld bei so einer dämlichen antwort
Gehen 2 Irre durch die Wüste
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
- Conny Kramer
- Zauberer der Bergwiesen
- Beiträge: 453
- Registriert: 25. Apr 2007, 17:31
- Wohnort: da wo das Gras noch schmeckt.. xD
- Kontaktdaten:
Re: Bild spiegeln
Benu hat geschrieben:Habs kurz mit 2 Bildern getestet und funktionierte da auch.SpoilerShowCode: Alles auswählen
define("FLIP_X", 1); // spiegeln an X-Achse define("FLIP_Y", 2); // spiegeln an Y-Achse define("FLIP_BOTH", 4); // Punktspiegelung im Mittelpunkt /** * image_flip * * spiegelt ein Bild in eienr bestimmten Richtung * * @ToDo: * - kopieren der Pixel funktioniert nicht korrekt bei weißen (eventuell auch schwarzen) Pixeln * * @param $source Ressource Zeiger auf das Bild, was gespiegelt werden soll * @param $flip int Richtung in die gespiegelt wird (FLIP_X, FLIP_Y, FLIP_BOTH) * @return Ressource */ function image_flip($source, $flip) { $x_max = imagesx($source); $y_max = imagesy($source); $im = imagecreatetruecolor($x_max, $y_max); for ($y_i = 0; $y_i <= $y_max; ++$y_i) { for ($x_i = 0; $x_i <= $x_max; ++$x_i) { $color = imagecolorat($source, $x_i, $y_i); $coords = flip_coords($x_i, $y_i, $x_max, $y_max, $flip); imagesetpixel($im, $coords[0], $coords[1], $color); } } return $im; } /** * flip_coords * * spiegelt Koordinaten in bestimmte Richtung * * @param $x int reele x-Koordinate * @param $y int reele y-Koordinate * @param $x_max int Breite des Koordinatensystems * @param $y_max int Breite des Koordinatensystems * @return array */ function flip_coords($x, $y, $x_max, $y_max, $direction) { $coords = array($x, $y); if ($direction == FLIP_X || $direction == FLIP_BOTH) { $coords[0] = $x_max-$x; } if ($direction == FLIP_Y || $direction == FLIP_BOTH) { $coords[1] = $y_max-$y; } return $coords; }
das funktioniert nicht richtig bei mir. hab es mit meinem schwarz -weiß bild probiert und da erscheinen immer noch zusätzlich schwarze pixel auf dem gespiegelten bild.
Gehen 2 Irre durch die Wüste
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
- Latzhosenträger
- großer Laubbär
- Beiträge: 3309
- Registriert: 2. Apr 2008, 15:14
Re: Bild spiegeln
Meinst du ernsthaft, dass dir noch jemand weiterhilft..?
- Conny Kramer
- Zauberer der Bergwiesen
- Beiträge: 453
- Registriert: 25. Apr 2007, 17:31
- Wohnort: da wo das Gras noch schmeckt.. xD
- Kontaktdaten:
Re: Bild spiegeln
du kannst mir ja anscheined eh nicht helfen also brauchste hier och nicht mehr reinschreiben. und ja ich hoffe dass mir noch jmd weiterhilft.
Gehen 2 Irre durch die Wüste
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
Sagt der eine zum anderen:''He, ich will auch mal in der Mitte gehen!''
- Latzhosenträger
- großer Laubbär
- Beiträge: 3309
- Registriert: 2. Apr 2008, 15:14
Re: Bild spiegeln
Ich mache mir die Mühe dir etwas raus zusuchen und du bedankst dich nicht einmal. Was erwartest du eigentlich? Das dir jemand dein Script schreibt? Geh auf php.net und baus dir selbst, wenn dir google nicht hilft.
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste