Heyho!
Vielen Dank erstmal für deine kontinuierlich-schnellen Antworten!
Das mit dem getimagesize() ist mir nach Abschicken des Postings auch aufgefallen. Habe das dann einfach, so wie du schon sagtest, _vorher_ gemacht.
Ich zeig dir einfach mal meinen Versuch, der leider immer noch _nicht_ klappt. Habe jetzt auch mal ein paar mehr Kommentare eingefügt ;)
=====================================
<?php
/* Beim Lesen des folgenden Codes beginnt man am besten mit dem else{}-Bereich! */
if($_GET['action']=="ausgabe") //Wenn Param. ausgabe gesetzt ist, liefert Script den Inhalt des Bildes für den IMG-Tag unten
{
session_start();
$datei = $_SESSION['datei_inhalt']; //Enthält den Dateiinhalt der hochgeladenen Datei
$width = $_GET['breite']; //Breite des endgültigen Bildes in px
$height = $_GET['hoehe']; //Höhe des endgültigen Bildes in px
$quali = $_GET['quali']; //Qualität der Komprimierung zwischen 1 und 100
$quell_datei = imagecreatefromjpeg($datei); //Erstellt eine JPEG-Datei aus dem Dateiinhalt der hochgeladenen Datei
$ziel_datei = imagecreatetruecolor($width,$height);
$resize_datei = imagecopyresampled($ziel_datei,$quell_datei,0,0,0,0,$width,$height,$bild_w,$bild_h); //Bildgröße anpassen
$interlace = imageInterlace($ziel_datei,1); //Interlacing-Funktion: 0 = aus; 1 = an
header("Content-Type: image/jpeg"); //Ausgabe des Bildes, welches dann per IMG-Tag (s.u.) angezeigt wird
$ausgabe = imagejpeg($ziel_datei,"",$quali);
}
else
{
$width = $_POST['breite']; //Breite des endgültigen Bildes in px
$height = $_POST['hoehe']; //Höhe des endgültigen Bildes in px
$quali = $_POST['quali']; //Qualität der Komprimierung zwischen 1 und 100
$prozent = $_POST['prozent']; //Prozentuale Veränderung
$datei = $_FILES['image']['tmp_name']; //Die hochgeladene Datei
$bild_info = getimagesize($datei);
$bild_w = $bild_info[0];
$bild_h = $bild_info[1];
if($prozent!="") //Ggf. relative Anpassung der Seitenverhältnisse
{
$prozent = $prozent/100;
$width = $bild_w * $prozent;
$height = $bild_h * $prozent;
}
$html_head = "<html>\n<head>\n<title>Bild Ausgabe</title>\n</head>\n<body>\n";
$html_tail = "\n</body>\n</html>";
if($quali=="" || $quali < 1 || $quali > 100)
{ echo $html_head . "Der Grad der Qualität muss zwischen 1 und 100 liegen!" . $html_tail; exit; }
if($width=="" || $height=="")
{ echo $html_head . "Es wurden keine Ziel-Maße übergeben!" . $html_tail; exit; }
if($bild_w=="" && $bild_info[2]!="2")
{ echo $html_head . "Das ist kein Bild oder kein JPEG-Bild!" . $html_tail; exit; }
$temp = fopen($datei,"r"); //Hochgeladene Datei wird geöffnet...
$temp = fread($temp,filesize($datei)); //...und ausgelesen
session_start();
$_SESSION['datei_inhalt'] = $temp; //Dateiinhalt der hochgeladenen Datei wird in einer Sessionvariable abgespeichert
//Ein IMG-Tag wird ausgegeben, über den die Funktion erneut aufgerufen wird und diesmal die Bilddaten ausgibt
echo "<img src='" . basename($_SERVER["PHP_SELF"]) . "?action=ausgabe&breite=" . $width . "&hoehe=" . $height . "&quali=" . $quali . "'>";
}
?>
=====================================
Das Ganze lässt sich hier: http://mastershrimp.com/test/php/resize/image_resize_upload.php ansehen und ausprobieren.
Benutze ich die Session-Sachen richtig? Nehme ich die Session richtig wieder auf? Sendet der Browser schon Daten, bevor er den Header ausgibt? All das würde ja einen Fehler erklären...
Btw.: Sehe ich das richtig, dass ich in dem if($_GET['action]=="ausgabe")-Teil keinerlei Fehlerabfrage machen kann?
Siehst du noch einen Fehler? Vielleicht in der Syntax?
Gruß
Mastershrimp
Kämpft für die Rettung von dem Genitiv!