Hallo zusammen,
kenne mich mit PHP noch nicht gut aus, deshalb folgende grundsätzliche Frage zu PHP.
Wie kann ich aus einem Script ein Ergebnis, welches innerhalb dieses Scriptes berechnet wird, zurückgeben?
Ich bin dabei eine Bildergalerie zu schreiben. Die Erstellung der Thumbnails erfolgt mittels Script "thumbnail.php". Diesem Script übergebe ich per Parameter die Bilddatei (file=.$file).
Das klappt soweit auch alles wie gewünscht. Die Bilder werden verkleinert dargestellt.
In dem Script hole ich mir erst einmal die Originalgröße von dem Bild und verkleinere es dann entsprechend, um die Seitenverhältnisse beizubehalten.
Das sieht dann so aus.
Die ermittelte Höhe und Breite von dem Thumbnail möchte ich nun vom Script zurückgeben, damit ich sie im oben gezeigten img-Tag mittels der Attribute height und width angeben kann.
Könnt ihr mir dabei weiterhelfen?
Danke schon einmal im Voraus!
kenne mich mit PHP noch nicht gut aus, deshalb folgende grundsätzliche Frage zu PHP.
Wie kann ich aus einem Script ein Ergebnis, welches innerhalb dieses Scriptes berechnet wird, zurückgeben?
Ich bin dabei eine Bildergalerie zu schreiben. Die Erstellung der Thumbnails erfolgt mittels Script "thumbnail.php". Diesem Script übergebe ich per Parameter die Bilddatei (file=.$file).
Das klappt soweit auch alles wie gewünscht. Die Bilder werden verkleinert dargestellt.
PHP-Code:
foreach($fileArray as $file)
{
echo "<div id=\"galerie\"><img style=\"vertical-align:middle;\" src=\"./php/thumbnail.php?file=.$file\" alt=\"substr(strrchr($file, '/'), 1)\" /></div>\n";
}
Das sieht dann so aus.
PHP-Code:
<?php
$max_px = 100;
$file = $_GET['file']; //weil register_global=off in php.ini
// Dateiendung extrahieren ...
if(($end = strrchr($file, ".")) != false)
{
// ... und öffnen
switch(strtolower(substr($end, 1))) //führenden Punkt ignorieren
{
case 'png':
$image_src = imageCreateFromPng($file);
break;
case 'gif':
$image_src = imageCreateFromGif($file);
break;
case 'jpg':
case 'jpeg':
$image_src = imageCreateFromJPEG($file);
break;
default:
echo "Dateiformat " . $end . " wird nicht unterstützt<br />";
}
// Bildabmessungen vom Original ermitteln
$width_src = imagesx($image_src);
$height_src = imagesy($image_src);
// neue Bildabmessungen festlegen
if($width_src > $height_src)
{
$width_dst = $max_px;
$height_dst = $max_px / ($width_src / $height_src);
}
elseif($width_src < $height_src)
{
$height_dst = $max_px;
$width_dst = $max_px / ($height_src / $width_src);
}
else
{
$height_dst = $max_px;
$width_dst = $max_px;
}
// Bild kopieren und ausgeben
$image_dst = imageCreateTrueColor($width_dst, $height_dst);
if($image_dst != false)
{
// imageCopyResized($image_dst, $image_src, 0, 0, 0, 0, $width_dst, $height_dst, $width_src, $height_src);
imagecopyresampled($image_dst, $image_src, 0, 0, 0, 0, $width_dst, $height_dst, $width_src, $height_src);
header("Content-Type: image/jpeg");
imagejpeg($image_dst);
imageDestroy($image_src);
imageDestroy($image_dst);
}
else
{
echo "Fehler bei imageCreateTrueColor<br />";
}
}
else
{
echo "Fehler bei strrchr<br />";
}
?>
Könnt ihr mir dabei weiterhelfen?
Danke schon einmal im Voraus!
Kommentar