Tach,
habe folgendes Problem! Eine Bildergalerie, die schon automatisch Thumbs erstellt! Ich will aber, wenn die Originalbilder größer als 800 x 600 sind, diese auf 800x600 berechnen lassen, und die Qualität aber auf die Hälfte heruntersetzen(Wie bei Photoshop)! Ist das irgendwie möglich? THX for Help!
Code:
$PicPathIn = "$DOCUMENT_ROOT/galerie/pix/";
$handle_ordner = opendir($PicPathIn);
while ($ordner = readdir($handle_ordner))
{
if (!is_file($ordner) && $ordner != "." && $ordner != "..")
{
$ordner_aktuell = $PicPathIn;
$ordner_aktuell .= $ordner;
$ordner_aktuell .= "/";
// Bilder auslesen:
$handle = opendir ("$ordner_aktuell");
while ($file = readdir ($handle))
{
if ($file != "." && $file != ".." && !ereg('^th_', $file))
{
if (!file_exists($ordner_aktuell."th_".$file))
{
// --- Thumbnail erstellen ------
echo "Thumb für $file existiert nicht - wird erstellt\n<br />";
// Orginalbild
$bild = $file;
// Bilddaten ermitteln
$size=getimagesize("$ordner_aktuell"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=100;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
if($size[2]==1) {
// GIF
$altesBild=ImageCreateFromGIF("$ordner_aktuell"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
imageGIF($neuesBild,"$ordner_aktuell"."th_"."$bild");
}
if($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG("$ordner_aktuell"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$ordner_aktuell"."th_"."$bild");
}
if($size[2]==3) {
// PNG
$altesBild=ImageCreateFromPNG("$ordner_aktuell"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImagePNG($neuesBild,"$ordner_aktuell"."th_"."$bild");
}
echo "Altes Bild:<BR>";
echo "<IMG SRC=\"pix/$ordner/$bild\" WIDTH=\"$breite\" HEIGHT=\"$hoehe\"><br /><br />";
echo "Neues Bild:<BR>";
$Thumbnail = "pix/".$ordner."/th_".$bild;
echo "<IMG SRC=\"$Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\"><br /><br />";
}
else
{
echo "Thumb für $file existiert\n<br /><br />";
}
}
}
closedir($handle);
}
}
closedir($handle_ordner);
?>
Danke Leute!
habe folgendes Problem! Eine Bildergalerie, die schon automatisch Thumbs erstellt! Ich will aber, wenn die Originalbilder größer als 800 x 600 sind, diese auf 800x600 berechnen lassen, und die Qualität aber auf die Hälfte heruntersetzen(Wie bei Photoshop)! Ist das irgendwie möglich? THX for Help!
Code:
$PicPathIn = "$DOCUMENT_ROOT/galerie/pix/";
$handle_ordner = opendir($PicPathIn);
while ($ordner = readdir($handle_ordner))
{
if (!is_file($ordner) && $ordner != "." && $ordner != "..")
{
$ordner_aktuell = $PicPathIn;
$ordner_aktuell .= $ordner;
$ordner_aktuell .= "/";
// Bilder auslesen:
$handle = opendir ("$ordner_aktuell");
while ($file = readdir ($handle))
{
if ($file != "." && $file != ".." && !ereg('^th_', $file))
{
if (!file_exists($ordner_aktuell."th_".$file))
{
// --- Thumbnail erstellen ------
echo "Thumb für $file existiert nicht - wird erstellt\n<br />";
// Orginalbild
$bild = $file;
// Bilddaten ermitteln
$size=getimagesize("$ordner_aktuell"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=100;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
if($size[2]==1) {
// GIF
$altesBild=ImageCreateFromGIF("$ordner_aktuell"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
imageGIF($neuesBild,"$ordner_aktuell"."th_"."$bild");
}
if($size[2]==2) {
// JPG
$altesBild=ImageCreateFromJPEG("$ordner_aktuell"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$ordner_aktuell"."th_"."$bild");
}
if($size[2]==3) {
// PNG
$altesBild=ImageCreateFromPNG("$ordner_aktuell"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImagePNG($neuesBild,"$ordner_aktuell"."th_"."$bild");
}
echo "Altes Bild:<BR>";
echo "<IMG SRC=\"pix/$ordner/$bild\" WIDTH=\"$breite\" HEIGHT=\"$hoehe\"><br /><br />";
echo "Neues Bild:<BR>";
$Thumbnail = "pix/".$ordner."/th_".$bild;
echo "<IMG SRC=\"$Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\"><br /><br />";
}
else
{
echo "Thumb für $file existiert\n<br /><br />";
}
}
}
closedir($handle);
}
}
closedir($handle_ordner);
?>
Danke Leute!
Kommentar