Büroklammer: Wie verkleinere ich ein Bild nur, wenn es groß genug ist?

8

Ich verwende Paperclip, um Bilder wie folgt zu skalieren:

%Vor%

Wenn das Originalbild 32x32 ist:

  1. Das resultierende medium Bild hat die gleiche Größe (d. h. 32x32 ), aber die Datei ist etwas anders und das Bild sieht ein bisschen verändert aus. Warum ist das so?

  2. Die resultierende thumb size ist 80x80 (sie sieht gestreckt aus, um zu dieser Größe zu passen). Wie kann ich die Größe des Bildes vermeiden, wenn es zu klein ist? Angenommen, die Abmessungen des Originalbildes liegen in den Variablen width und height .

Misha Moroshko 18.07.2011, 07:10
quelle

1 Antwort

6

(1) Wahrscheinlich weil Paperclip ein JPEG dekodiert und dann ein neues JPEG schreibt / kodiert. JPEG ist ein verlustbehaftetes Format, so dass jede Kodierung das Bild verschlechtert. Sie können das convert_options verwenden, um das JPEG-Qualität , aber Sie werden vermutlich eine Verschlechterung Ihrer JPEG-Dateien akzeptieren müssen.

(2) liegt daran, dass Paperclip sich so verhält, wie es gesagt wurde. Paperclip verwendet ImageMagick, um das Heavy Lifting durchzuführen, und die Style-Dimensionen sind nur ImageMagick-Geometriestrings mit eine Änderung :

  

Paperclip fügt auch die Option "#" hinzu (z. B. "50x50 #"), die das Bild so skaliert, dass es maximal in die Abmessungen passt und den Rest abschneidet (in der Mitte gewichtet).

Ihr :thumb Stil verwendet "#", also sagen Sie Paperclip, dass Sie ein 80x80 Bild haben möchten, auch wenn das Bild skaliert und zugeschnitten werden muss, um dorthin zu gelangen. Sie können das "#" aus der Bemaßungszeichenfolge löschen und, falls gewünscht oder angebracht, eines der hinzufügen die anderen Modifikatoren .

    
mu is too short 18.07.2011, 14:54
quelle