Wie kann ich ein sehr, sehr großes Bild öffnen, um es zu verkleinern?

14

Ich habe ein Bild mit einer Auflösung von 18984 x 28591 Pixel, kann es jedoch nicht mit Paint oder Pixlr Editor öffnen, um die Größe zu verringern.

Wie kann ich dieses große Bild auf meinem Laptop konvertieren oder öffnen?

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Educ
quelle
4
Es ist nicht die DPI, die das Problem darstellt, sondern wahrscheinlich die Dimension der Datei. Es sollte mehr als 1,5 GByte sein! Ist das so?
TFuto
Größe des Bildes ist 31,3 MB (32.846.155 Bytes)
Educ
2
Entschuldigung, nicht die Größe der Datei. Die Größe im RAM. Wenn Sie dies zur normalen Darstellung dekodieren, werden dafür 18984 x 28591 x 3 Bytes ~ = 1,5 GByte benötigt. Sie benötigen mindestens diese Menge an RAM, um es zu öffnen. Und wahrscheinlich noch 1 GB für die Manipulation. Und 1 GByte für das Betriebssystem. Sowas in der Art.
TFuto
es ist mein persönliches Bild, kann ich es Ihnen per Google Drive senden, um die Größe zu reduzieren, wenn dies möglich ist, und danke im Voraus
Educ
2
Ja, ich kann es versuchen. :-) Sie könnten auch IrfanView's Batch-Konverter ausprobieren, es könnte helfen.
TFuto

Antworten:

29

Ich habe ImageMagick unter Ubuntu verwendet, um die Größe dieser großen Bilder zu ändern.

convert -resize 10% source.jpg dest.jpg

Es dauerte eine Weile, aber mit 1 GByte RAM erstellte das Tool eine 4,7-GByte-Swap-ähnliche Datei für sich.

Weitere Informationen finden Sie auf AskUbuntu .

TFuto
quelle
3
Sie können ihm auch eine bestimmte Auflösung geben, z. B.convert -resize 1898x2859 ...
Michael Hampton
2
Auch unter OSX verfügbar.
o0 '.
1
Es gibt auch eine Windows-Version.
Tonny
9

Theoretisch könnten die meisten Bildformate progressiv verkleinert werden, ohne das gesamte Bild in den Speicher zu laden. Ich kenne jedoch keine Tools, die diese Funktion wirklich implementieren, mit Ausnahme von JPEG: Es ist besonders, dass Sie nicht nur verkleinern können, ohne die volle Auflösung zu laden. Dank des kreativen Einsatzes von DCT (JPEG wird im Frequenzbereich codiert, was bedeutet, dass es nicht auf die exakt gleiche Auflösung wie das Originalbild decodiert werden muss), kann es auch ohne Dekodierung in voller Auflösung verkleinert werden.

Das Standard-JPEG-Dekodierungstool (Befehlszeile, libjpeg-progs-Paket unter Linux, suchen Sie nach djpeg.exe für Windows) verkleinert riesige JPEG-Dateien, bevor eine "normale" Anwendung das Laden überhaupt beenden kann:

djpeg -scale 1/8 huge_image_that_will_not_fit_in_your_ram.jpg >downscaled.ppm

Ich habe die Option zum Herunterskalieren beim Laden auch in einigen GUI-Anwendungen gesehen, kann mich aber im Moment nicht daran erinnern.

Benchmark!

Vergleicht man die Speichernutzung und die Verarbeitungszeit von ImageMagick vs djpeg ein großes Bild Downscaling (Rohrleitungen zu cjpeg , so dass das resultierende Bild auch jpg ist, für einen fairen Vergleich mit convert )

$ display -verbose input.jpg 
input.jpg JPEG 13114x11722 13114x11722+0+0 8-bit sRGB 30.75MB 6.690u 0:06.699

$ /usr/bin/time -f "time=%E mem=%MK" bash -c "convert input.jpg -scale '12.5%' output.jpg"
time=0:10.72 mem=1225844K

$ /usr/bin/time -f "time=%E mem=%MK" bash -c "djpeg -scale 1/8 input.jpg | cjpeg > output2.jpg"
time=0:00.88 mem=1412K

1,2 GB im Vergleich zu 1,4 MB und mehr als 10-mal langsamer - und dies auf einem relativ kleinen 13k x 11k-Image, das vollständig in den Arbeitsspeicher passen konnte, sodass kein Auslagerungsvorgang stattfand.

Andererseits hat die Verwendung von djpeg für das Downscaling auch seine eigenen Einschränkungen: Die Auswahl des Skalierungsfaktors ist begrenzt und die Resampling-Methode kann nicht geändert werden.

szulat
quelle
7

Sie können auch versuchen, Picture Resizer unter Windows zu verwenden (ich liebe dieses Tool)

Sie ziehen das Bild einfach auf diese einfache EXE-Datei und legen es dort ab. Es ist besonders nützlich, wenn Sie viele Bilder konvertieren müssen, da Sie so viele Bilder gleichzeitig konvertieren können.

Die gesamte Konfiguration erfolgt über die Benennung der EXE, die IMO brilliert

Ich habe es aber noch nie mit einer riesigen Datei versucht.

mateoc
quelle