2016-03-28 5 views
1

Ich skaliere große Bilder auf meinem Projekt, um Thumbnails zu erstellen. Hier ein Beispiel:Bild mit Imagick-Treiber Größe in kleines Bild Größe gibt große Dateigröße

Originalbild (1160 x 773): Original Image (1160 x 773)

Thumbnail (400 x 266): Thumbnail (400 x 266)

Das Problem ist, das große Bild 732KB ist, das ist denke ich verständlich da es groß ist, aber das zweite Bild ist immer noch 573kb groß.

Ist das normal oder stimmt etwas nicht?

Hier ist mein Code für die Größenänderung:

\Intervention\Image\Facades\Image::make($originalPath) 
    ->resize($resized_width, $resized_height, function($constraint){ 
     $constraint->aspectRatio(); 
     $constraint->upsize(); 
    }) 
    ->save($thumbnailPath, 85); 
+0

Das ist normal. Verwende Qualität 30 für das Thumbnail. – user2094178

+0

Aber würde es nicht ein unscharfes Bild erzeugen, wenn die Qualität 30 ist? Auch das ist ein Spezialfall, da ich bereits mehr als hundert Bilder mit dem gleichen Code und fast der gleichen Größe in der Größe verändert habe, aber ihre Dateigröße ist viel kleiner als diese. Die meisten von ihnen sind nur 70 KB, wenn die Größe auf die Miniaturgröße geändert wird. Ich denke, ich habe 10 Bilder mit dieser Situation und ich habe sogar schon die Qualität auf 0 gesetzt, es war sehr verschwommen und pixelig, aber immer noch ist die Größe nicht weit von 500kb. – Jed

+0

Sie sollten diese Details zur Frage hinzufügen. – user2094178

Antwort

1

diesen Code Versuchen Sie, und Sie werden eine kleine Größe Bild mit einem Seitenverhältnis zu erhalten.

$configpath = 'Path of destination'; 
$width  = ($width)?$width:200; 
$height  = ($height)?$height:200; 
$img = Image::canvas($width, $height); 
$image = Image::make($path)->resize($width, $height, function ($c) { 
     $c->aspectRatio(); 
     $c->upsize(); 
}); 
// insert resized image centered into background 
$img->insert($image, 'center'); 
$img->save($configpath.$width.'x'.$height.'_'.$filename); 
+0

Ehrfürchtiger Mann! Danke für Ihre Hilfe. Ich habe auf meinem lokalen Computer versucht und es funktioniert richtig. Ich werde das später auf meinem Server versuchen und wenn die Ausgabe die gleiche ist, werde ich dies als die richtige Antwort markieren. Als Nachschlagewerk habe ich diesmal gd-Treiber anstelle von imagick benutzt. – Jed