1
Ich habe folgende Ausgangsposition:
Ich möchte JPG-Bilder per PHP hochladen.
Die Bilder haben alle ein Format von Höhe 330px und Breite max. 496px.
Aus diesen Bildern möchte ich Thumbnails erstellen mit 110x110px jedoch ohne die Bilder zu verzerren.
Ich bekomme nun ein Thumbnail im Format 110x110px.
Allerdings "überdeckt" das neue Bild das schwarze "Leer-Bild" nicht komplett sondern ich habe bei einem Ausgangsbild von 496x330px rechts einen ca. 5 px breiten schwarzen Rand.
Bei einem Bild welches schmaler als 496px ist, ist der Rand rechts und unten vorhanden.
Hat mir da jemand einen Tipp?
Ich möchte JPG-Bilder per PHP hochladen.
Die Bilder haben alle ein Format von Höhe 330px und Breite max. 496px.
Aus diesen Bildern möchte ich Thumbnails erstellen mit 110x110px jedoch ohne die Bilder zu verzerren.
$bildpos = $_REQUEST['bildpos'];
$bildname = $_FILES['bild']['name'];
$bildtyp = $_FILES['bild']['type'];
$tmpbild = $_FILES['bild']['tmp_name'];
$bildinfo = GetImageSize($tmpbild);
$breite1 = $bildinfo[0]*110/$bildinfo[1]; // Test wie breit das Originalbild bei 110px Höhe wird
$hoehe1 = $bildinfo[1]*110/$bildinfo[0]; // Test wie hoch das Originalbild bei 110px Höhe wird
if($breite1 > 110)
{
$xpos = ($breite1-110)/2; // wenn Bild breiter als 110px ist, um wie viel breiter?
$ypos = 0;
}
elseif($hoehe1 > 110)
{
$xpos = 0;
$ypos = ($hoehe1-110)/2; // wenn Bild hoher als 110px ist, um wie viel breiter?
}
$neuesBild = imagecreatetruecolor(110,110); //Leer-Bild mit 110x100px generieren
$dest = $_SERVER['DOCUMENT_ROOT']."/thumbnail.jpg";
$altesBild = imagecreatefromjpeg($dest);
imagecopyresampled($neuesBild,$altesBild,0,0,$xpos,$ypos,110,110,$bildinfo[0],$bildinfo[1]); //ich vermute mal, dass ich genau hier irgendwas falsch mache
imagejpeg($neuesBild,$dest,100);
clearstatcache();
imagedestroy($altesBild);
?>
Ich bekomme nun ein Thumbnail im Format 110x110px.
Allerdings "überdeckt" das neue Bild das schwarze "Leer-Bild" nicht komplett sondern ich habe bei einem Ausgangsbild von 496x330px rechts einen ca. 5 px breiten schwarzen Rand.
Bei einem Bild welches schmaler als 496px ist, ist der Rand rechts und unten vorhanden.
Hat mir da jemand einen Tipp?