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?
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?
Antworten:
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 .
convert -resize 1898x2859 ...
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.
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.
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.