Hallo,
danke für eure Antworten.
Ich habe jetzt den Code überarbeitet und mich dabei an dieser Seite orientiert.
Die Seite "Verkleinern.php" hat jetzt folgenen Aufbau:
<?php
$Bild = "../GRAFIKEN/SORTIMENT/" . $_GET['Bild'] . ".png";
$Bild = imagecreatefrompng($Bild);
$UrspruenglicheBreite = imagesx($Bild);
$UrspruenglicheHoehe = imagesy($Bild);
if (isset ($_GET['Breite']))
{
$NeueBreite = $_GET['Breite'];
$NeueHoehe = round($UrspruenglicheHoehe / ($UrspruenglicheBreite / $NeueBreite));
$NeueBreite = round($UrspruenglicheBreite / ($UrspruenglicheHoehe / $NeueHoehe));
}
if (isset ($_GET['Hoehe']))
{
$NeueHoehe = $_GET['Hoehe'];
$NeueBreite = round($UrspruenglicheBreite / ($UrspruenglicheHoehe / $NeueHoehe));
$NeueHoehe = round($UrspruenglicheHoehe / ($UrspruenglicheBreite / $NeueBreite));
}
if(!$Thumbnail = imagecreatetruecolor($NeueBreite, $NeueHoehe))
{
$Thumbnail = imagecreate($NeueBreite, $NeueHoehe);
}
if(!$Thumbnail = imagecopyresampled($Thumbnail, $Bild, 0, 0, 0, 0, $NeueBreite, $NeueHoehe, $UrspruenglicheBreite, $UrspruenglicheHoehe))
{
imagecopyresized($Thumbnail, $Bild, 0, 0, 0, 0, $NeueBreite, $NeueHoehe, $UrspruenglicheBreite, $UrspruenglicheHoehe);
}
$Bild = $Thumbnail;
// header("Content-type:image/png");
imagepng($Bild, "", 9);
?>
Der Code zum Einbinden der zu verkleinernden Grafiken sieht wie folgt aus:
echo '<img src="Verkleinern.php?Bild=' . $Bild . '.png&Hoehe=95">';
Das "&"-Zeichen habe ich, wie es Gunnar geschrieben hatte, nun escaped.
Ein Blick in den erzeugten Quelltext liefert mir folgende Ausgabe:
<img src="Verkleinern.php?Bild=GewandungMuetzen1&Hoehe=95">
<img src="Verkleinern.php?Bild=GewandungMuetzen2&Hoehe=95">
Wenn ich, wie es mir Chris geraten hat, die URL direkt im Browser aufzurufen, bekomme ich folgende Meldungen:
Notice: Undefined variable: NeueBreite in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 25
Notice: Undefined variable: NeueHoehe in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 25
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 25
Notice: Undefined variable: NeueBreite in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 27
Notice: Undefined variable: NeueHoehe in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 27
Warning: imagecreate() [function.imagecreate]: Invalid image dimensions in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 27
Notice: Undefined variable: NeueBreite in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 30
Notice: Undefined variable: NeueHoehe in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 30
Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 30
Notice: Undefined variable: NeueBreite in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 32
Notice: Undefined variable: NeueHoehe in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 32
Warning: imagecopyresized() expects parameter 1 to be resource, null given in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 32
Warning: imagepng() expects parameter 1 to be resource, null given in C:\xampp\htdocs\WEBSHOP\PHP\Verkleinern.php on line 39
Wenn ich das jetzt zerlege, dann wird scheinbar der Parameter "Hoehe" entweder nicht übergeben oder nicht (richtig) eingelesen, denn alle anderen Anweisungen bauen ja auf diesem Wert auf.
Warum wird der Wert nicht übergeben oder nicht (richtig) eingelesen?
Hängt das damit zusammen, dass der Wert nicht als Zahl interpretiert wird?
Gruß,
Enrico