Antworten auf deine Fragen:
Neues Thema erstellen

Bilder mit PHP (Imagine) verkleinern

fakerer

Aktives Mitglied

Hallo,
ich suche nach einer Lösung Bilder mit php zu verkleinern.
allerdings verlieren sie dabei meiner Meinung zu sehr an Qualität.
Ein wenig ist schon klar aber ich hoffe das geht besser, sehen dann zum teil ein wenig unscharf aus.

Hätte es mal so mit Imagine versucht.
PHP:
if ($resize) {
                    $imagine = new \Imagine\Gd\Imagine();
                    if (strpos($attachment['filename'], ".bmp") === false) {
                        $image = $imagine->open($dstpath . $attachment['filename']);
                        $oWidth = $image->getSize()->getWidth();
                        $oHeight = $image->getSize()->getHeight();

                        if ($oWidth > $resize['w']) {
                            $height = ($oHeight / $oWidth) * $resize['w'];
                            $boxSize = new Box($resize['w'], $height);
                            if ($height > $resize['h']) {
                                $width = ($oWidth / $oHeight) * $resize['h'];
                                $boxSize = new Box($width, $resize['h']);
                            }
                        }
                        if(isset($boxSize)) {
                            $image->resize($boxSize)->save($dstpath . $attachment['filename']);
                        }
                    }
}

frage ist jetzt mach ich was falsch?
gibt es bessere Lösungen oder ist ein andres Script besser?

Falls jemand schon Erfahrung damit hat würde ich mich über jede Info freuen.
Danke
lg,
fakerer
 

G

Gelöschtes Mitglied 633957

Guest

Schwer zu sagen, ohne Deine Grafiken zu sehen. Hast Du es schon einmal mit ‘nem simplen imagescale versucht? Ich würde den Modus Bikubisch fixiert oder Benachbart probieren!
 

Robbyn-

PHP / Flex Programmierer

Ich habe dir hier mal eine Funktion aufbereitet:

PHP:
function imResize($path, $newPath, $maxSize, $compression = Imagick::COMPRESSION_JPEG, $compressionQuality = 75, $fixSize = false)
{
    $image = new Imagick($path);

    if($fixSize === false)
    {
        // Was ist größer Höhe oder Breite
        if($image->getImageHeight() <= $image->getImageWidth())
        {
            // Bildgrößer ändern mit den Lanczos Resampling-Algorithmus basierend auf der Breite
            $image->resizeImage($maxSize, 0, Imagick::FILTER_LANCZOS, 1);
        }
        else
        {
            // Bildgrößer ändern mit den Lanczos Resampling-Algorithmus basierend auf der Höhe
            $image->resizeImage(0, $maxSize, Imagick::FILTER_LANCZOS, 1);
        }
    }
    else
    {
        //Bei einer festen Breite und Höhe
        $image->cropThumbnailImage($maxSize, $maxSize);
        $image->setImagePage(0,0,0,0);
    }

    // Hier setzen wir unsere Kompression fest
    $image->setImageCompression($compression);

    // Huer die Kompressionsrate (1 schwächste Qualität, 100 höchste Qualität)
    $image->setImageCompressionQuality($compressionQuality);

    // Entfernt unnötige Meta Daten
    $image->stripImage();

    // Das Resultat in ein Bild schreiben
    $image->writeImage($newPath);

    // Zum Schluss die verwendeten Ressourcen wieder freigeben
    $image->destroy();
}
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben