Hallo!
Ich habe eine Funktion geschrieben, die mir die Größe eines Bildes benutzerdefiniert ändert. Es funktioniert auch alles so weit ganz gut, nur ist mir jetzt aufgefallen, dass bei JPG-Bilder teilweise falsche Farben, bzw. zu wenig Farben angezeigt werden.
Und wenn ich es speichern möchte (über den Browser, Rechtsklick -> Bild speichern unter) wird als Dateityp bmp angegeben (Unbenannt.bmp). Wenn ich die Dateiendung in jpg ändere, lässt es sich auch nicht mehr öfnen (Vorschau im Explorer, Photoshop). Was läuft da schief? Hier die relevanten Teile meines Codes:
Zwischendrin mach ich noch ein paar Berechnungen der Größe.
Ich hoffe jemand findet den Fehler!! Danke schonmal!
Ich habe eine Funktion geschrieben, die mir die Größe eines Bildes benutzerdefiniert ändert. Es funktioniert auch alles so weit ganz gut, nur ist mir jetzt aufgefallen, dass bei JPG-Bilder teilweise falsche Farben, bzw. zu wenig Farben angezeigt werden.
Und wenn ich es speichern möchte (über den Browser, Rechtsklick -> Bild speichern unter) wird als Dateityp bmp angegeben (Unbenannt.bmp). Wenn ich die Dateiendung in jpg ändere, lässt es sich auch nicht mehr öfnen (Vorschau im Explorer, Photoshop). Was läuft da schief? Hier die relevanten Teile meines Codes:
PHP:
$size = getimagesize($_GET["img"]);
$width_org = $size[0];
$height_org = $size[1];
$imagetype = $size[2];
switch ($imagetype)
{
case 1: // GIF
$img_org = imagecreatefromgif($_GET["img"]);
break;
case 2: // JPG
$img_org = imagecreatefromjpeg($_GET["img"]);
break;
case 3: // PNG
$img_org = imagecreatefrompng($_GET["img"]);
break;
default:
if($_GET["save_image"] == "true")
echo "Unsupported image format";
else
create_text_image("Unsupported image format.");
}
Zwischendrin mach ich noch ein paar Berechnungen der Größe.
PHP:
$img_new = imagecreate($width_new, $height_new);
imagecopyresized($img_new, $img_org, 0, 0, 0, 0, $width_new, $height_new, $width_org, $height_org);
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Expires: Mon, 28 Dec 1981 01:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
switch ($imagetype)
{
case 1: // GIF
header("Content-type: image/gif");
if($_GET["save_image"] == "true")
{
imagegif($img_new, FS_DOCUMENT_ROOT."/".$_GET["destination"]."/".$_GET["fn"]);
echo "true";
}
else
imagegif($img_new);
break;
case 2: // JPG
header("Content-type: image/jpeg");
if($_GET["save_image"] == "true")
{
imagejpeg($img_new, FS_DOCUMENT_ROOT."/".$_GET["destination"]."/".$_GET["fn"], 100);
echo "true";
}
else
imagejpeg($img_new, "", 100);
break;
case 3: // PNG
header("Content-type: image/png");
if($_GET["save_image"] == "true")
{
imagepng($img_new, FS_DOCUMENT_ROOT."/".$_GET["destination"]."/".$_GET["fn"]);
echo "true";
}
else
imagepng($img_new);
break;
default:
if($_GET["save_image"] == "true")
echo "Unsupported image format";
else
create_text_image("Unsupported image format.");
}
Ich hoffe jemand findet den Fehler!! Danke schonmal!