Hallöle alle zusammen
Bin quasi Grün hinter den Ohren was Foren betrifft, da es bis Dato eigentlich nie nötig war sich in einem anzumelden, da meine Fragen meist über google beantwortet wurden.
Aber nun ecke ich an, das ich einfach nicht mehr weiter weiss
Und zwar habe ich mir eine kleine Webgallery mit Adminbereich gebastelt, es funktioniert so weit auch alles wunderbar.
Nun bin ich allerdings auf ein Problem gestossen wofür ich absolut keine Lösung finde.
Zunächst mal der PHP Code (Diesen hab ich von einem Tutorial ...http://larsmichelsen.com/php/archiv-...rose-und-rand/).
Wie bereits erwähnt funktioniert das im grunde super, solange das erzeugte Thumbnail mit schwarz gefüllt wird!
Wenn ich nun den Wert von ImageColorAllocate auf 255,255,255 (weiß) setze und das Bild welches hochgeladen wird, höher als breit ist, wird mir ein Thumbnail erzeugt welches
"Weiß(links)-Bild(mitte)-Schwarz(rechts)" ist.
Sollte es der Fall sein das dass Hochgeladene Bild Breiter als Hoch ist , dann ist es oben Weiß und unten Schwarz.
Ich möchte nun natürlich das alles weiß ist bzw die frage ist eher woher das schwarz her kommt ?
Habt ihr ne Idee ?
Würd mich sehr über Tipps freuen.
Danke fürs lesen Cyberco
Bin quasi Grün hinter den Ohren was Foren betrifft, da es bis Dato eigentlich nie nötig war sich in einem anzumelden, da meine Fragen meist über google beantwortet wurden.
Aber nun ecke ich an, das ich einfach nicht mehr weiter weiss
Und zwar habe ich mir eine kleine Webgallery mit Adminbereich gebastelt, es funktioniert so weit auch alles wunderbar.
Nun bin ich allerdings auf ein Problem gestossen wofür ich absolut keine Lösung finde.
Zunächst mal der PHP Code (Diesen hab ich von einem Tutorial ...http://larsmichelsen.com/php/archiv-...rose-und-rand/).
PHP-Code:
<?PHP
//Dateipfad unter die Bilder liegen
$pfad = './';
//Dateiname des Ursprungsbildes
$bild = 'bild.gif';
//Dateiname des Thumbnails
$thumb = 'bild_thumb.gif';
//Welche Breite soll das finale Thumbnail haben?
$resWidth = 128;
//Welche Höhe soll das finale Thumbnail haben?
$resHeight = 96;
//Wenn die Datei nicht existiert...
if(!file_exists($pfad.$bild))
{
//Ausgeben einer Fehlermeldung und Beenden des Scriptes
die('Die angegebene Datei existiert nicht.');
}
//Aulesen der Höhe,Breite und des Dateityps des Bildes
$size = getimagesize($pfad.$bild);
//Das erste Element des Arrays $size beinhaltet die Breite
$width = $size['0'];
//Das zweite Element des Arrays $size beinhaltet die Höhe
$height = $size['1'];
//Das zweite Element des Arrays $size beinhaltet den Typ
$typ = $size['2'];
switch($typ)
{
//Wenn das Bild ein GIF ist...
case 1:
//Erstellen des ursprünglichen Bildes
$img = ImageCreateFromGIF($pfad.$bild);
break;
//Wenn das Bild ein JPG ist...
case 2:
//Erstellen des ursprünglichen Bildes
$img = ImageCreateFromJPEG($pfad.$bild);
break;
//Wenn das Bild ein PNG ist...
case 3:
//Erstellen desursprünglichen Bildes
$img = ImageCreateFromPNG($pfad.$bild);
break;
//Wenn die Datei kein GIF,JPG oder PNG ist...
default:
//Ausgeben einer Fehlermeldung und Beenden des Scriptes
die('Sorry, das Dateiformat wird nicht unterstützt.');
break;
}
//Wenn die Breite größer ist als die Höhe...
if($width > $height)
{
//Die Breite steht fest
$thumbWidth = $resWidth;
//Errechnen des Divisors
$div = $width / $thumbWidth;
//Errechnen der Höhe
$thumbHeight = $height / $div;
//Festlegen der X-Koordinate auf 0
$xAnfang = 0;
//Errechnen der Y-Koordinate an denen das temporäre Bild in das finale Thumbnail eingefügt wird
$yAnfang = ($resHeight - $thumbHeight) / 2;
}
//Wenn die Höhe größer ist als die Breite...
elseif($height > $width)
{
//Die Höhe steht fest
$thumbHeight = $resHeight;
//Errechnen des Divisors
$div = $height / $resHeight;
//Errechnen der Höhe
$thumbWidth = $width / $div;
//Errechnen der X-Koordinate an denen das temporäre Bild in das finale Thumbnail eingefügt wird
$xAnfang = ($resWidth - $thumbWidth) / 2;
//Festlegen der Y-Koordinate auf 0
$yAnfang = 0;
}
//Wenn beide Seiten gleich lang sind...
else
{
//Wenn die Breite größer ist als die Höhe...
if($resWidth > $resHeight)
{
//Festlegen der Höhe des temporären Bildes auf die Höhe des finalen Bildes
$thumbHeight = $resHeight;
//Festlegen der Breite des temporären Bildes auf die Höhe des finalen Bildes
$thumbWidth = $resHeight;
}
//Wenn die Höhe größer ist als die Breite...
elseif($resHeight > $resWidth)
{
//Festlegen der Höhe des temporären Bildes auf die Breite des finalen Bildes
$thumbHeight = $resWidth;
//Festlegen der Breite des temporären Bildes auf die Breite des finalen Bildes
$thumbWidth = $resWidth;
}
//Wenn beide Seite gleich sind...
else
{
//Festlegen der Höhe des temporären Bildes auf die Höhe des finalen Bildes
$thumbHeight = $resHeight;
//Festlegen der Breite des temporären Bildes auf die Höhe des finalen Bildes
$thumbWidth = $resHeight;
}
//Errechnen der X-Koordinate an denen das temporäre Bild in das finale Thumbnail eingefügt wird
$xAnfang = ($resWidth - $thumbWidth) / 2;
//Errechnen der Y-Koordinate an denen das temporäre Bild in das finale Thumbnail eingefügt wird
$yAnfang = ($resHeight - $thumbHeight) / 2;
}
//Erstellen eines temporären Bildes um ein Thumbail des Bildes zu erstellen
$tmpImg = ImageCreateTrueColor($thumbWidth,$thumbHeight);
//Einfügen des Bildes in das temporäre Bild
ImageCopyResampled($tmpImg,$img,0,0,0,0,$thumbWidth, $thumbHeight, $width, $height);
//Das finale Thumbnail erstellen
$resImg = ImageCreateTrueColor($resWidth, $resHeight);
//Das neue Bild mit schwarz füllen
ImageFill($resImg, 0, 0, ImageColorAllocate($resImg, 0, 0, 0));
//Das temporäre Bild in das Thumbnail einfügen
imagecopymerge($resImg,$tmpImg,$xAnfang,$yAnfang,0,0,$resWidth,$resHeight,100);
switch($typ)
{
//Wenn das Bild ein GIF ist...
case 1:
//Abspeichern des neuen Bildes
ImageGIF($resImg,$pfad.$thumb);
break;
//Wenn das Bild ein JPG ist...
case 2:
//Abspeichern des neuen Bildes
ImageJPEG($resImg,$pfad.$thumb);
break;
//Wenn das Bild ein PNG ist...
case 3:
//Abspeichern des neuen Bildes
ImagePNG($resImg,$pfad.$thumb);
break;
}
?>
Wenn ich nun den Wert von ImageColorAllocate auf 255,255,255 (weiß) setze und das Bild welches hochgeladen wird, höher als breit ist, wird mir ein Thumbnail erzeugt welches
"Weiß(links)-Bild(mitte)-Schwarz(rechts)" ist.
Sollte es der Fall sein das dass Hochgeladene Bild Breiter als Hoch ist , dann ist es oben Weiß und unten Schwarz.
Ich möchte nun natürlich das alles weiß ist bzw die frage ist eher woher das schwarz her kommt ?
Habt ihr ne Idee ?
Würd mich sehr über Tipps freuen.
Danke fürs lesen Cyberco
Kommentar