Ich habe ein Bild mit einer Auflösung von 18984 x 28591 Pixel, aber ich kann es nicht mit Paint oder mit Pixlr Editor öffnen, um seine Größe zu reduzieren.
Wie kann ich dieses große Bild auf meinem Laptop konvertieren oder öffnen?
Ich habe ImageMagick auf Ubuntu verwendet, um die Größe dieser großen Bilder zu ändern.
convert -resize 10% source.jpg dest.jpg
Es dauerte eine Weile, aber es funktionierte mit 1 GByte RAM, das Tool erstellte 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 schrittweise herunterskaliert werden, ohne das gesamte Bild in den Speicher zu laden, aber ich kenne keine Tools, die eine solche Funktion wirklich implementieren, außer JPEG: Es ist insofern besonders, als Sie nicht nur herunterskalieren können, ohne die volle Auflösung zu laden, aber auch herunterskalieren, ohne die volle Auflösung zu dekodieren, dank der kreativen Verwendung von DCT (JPEG wird im Frequenzbereich kodiert, was bedeutet, dass es nicht auf die exakt gleiche Auflösung wie das Originalbild dekodiert werden muss).
Das standardmäßige JPEG-Decodierungstool (Befehlszeile, libjpeg-progs-Paket in Linux, suchen Sie nach djpeg.exe für Windows) wird riesige JPEG-Dateien herunterskalieren, 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 auch die Option zum Herunterskalieren während des Ladens in einer GUI-Anwendung gesehen, kann mich aber im Moment nicht daran erinnern.
Vergleich der Speichernutzung und Verarbeitungszeit von ImageMagick vs. djpeg beim Herunterskalieren eines großen Bildes (Piping nach cjpeg , sodass 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 gegenüber 1,4 MB und über 10-mal langsamer - und dies auf einem relativ kleinen 13k x 11k-Image, das vollständig in den RAM passen konnte, sodass kein Austausch auftrat.
Andererseits hat die Verwendung von djpeg zum Herunterskalieren auch ihre 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. Dies ist besonders nützlich, wenn Sie viele Bilder konvertieren müssen, da Sie viele gleichzeitig konvertieren können.
Die gesamte Konfiguration erfolgt über die Benennung der EXE-Datei, was meiner Meinung nach brillant ist
Ich habe es jedoch noch nie mit einer großen Datei versucht.
TFuto
Erzieher
TFuto
Erzieher
TFuto
Chinmay Kanchi