Bild verkleinern - Welche Seite...

oldputz1990

Erfahrenes Mitglied
Hallo!

Ich habe diesen Script benützt um meine Bilder zu verkleinern:

PHP:
<?php

function scaleimage($ThumbnailBreite){


$tmparr = pos($_FILES);
$Grafikdatei = $tmparr['tmp_name'];


$Bilddaten = getimagesize($Grafikdatei);


$OriginalBreite = $Bilddaten[0];

$OriginalHoehe = $Bilddaten[1];



if($OriginalBreite < $ThumbnailBreite)

{

    $ThumbnailBreite=$OriginalBreite;
    
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;

$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);


if($Bilddaten[2]==1)

{
    $Originalgrafik = ImageCreateFromGIF($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageGIF($Thumbnailgrafik, $Grafikdatei);
}

elseif($Bilddaten[2]==2)
{
    $Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageJPEG($Thumbnailgrafik, $Grafikdatei);
}

elseif($Bilddaten[2]==3)
{
    $Originalgrafik = ImageCreateFromPNG($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImagePNG($Thumbnailgrafik, $Grafikdatei);
}


}

?>

Bei Fotos welche im Hochformat sind, wird manchmal die Breite auf z.B. 650px gesetzt, statt der Höhe.

d.h. Ich möchte immer die längste Seite auf die gewünschten Pixel verkleinern (scaleimage(650)).

Was ist bei dem Script falsch?

Danke!
 
Du brauchst mehr Parameter. Die Höhe und Breite des Bildes ist in dem erforderlich.

PHP:
$newp = 600;
         
         if ($height > $width) {
        
            $new_width = ($newp / $height) * $width;
            $new_height = $newp;    
         } 
         else {
            $new_height = ($newp / $width) * $height;
            $new_width = $newp;
         }
 
Zurück