如何打开非常大的图像以缩小尺寸?


14

我有一个分辨率为18984x28591px的图像,但是无法使用Paint或Pixlr Editor来打开它以减小其尺寸。

如何在笔记本电脑上转换或打开大图像?

在此处输入图片说明

在此处输入图片说明


4
麻烦不是DPI,可能是文件的大小。它应该超过1.5 GB!是这样吗?
TFuto

图片大小为31.3 MB(32,846,155字节)
Educ

2
抱歉,不是文件尺寸。RAM中的大小。如果将其解码为正常表示形式,则需要18984x28591x3字节〜= 1.5 GB。打开它至少需要此RAM数量。可能还需要另外1 GB的空间来进行操作。1 GB用于操作系统。这样的东西。
TFuto

这是我的个人照片,如果可以的话,我可以通过Google驱动器将其发送给您以减小尺寸,并在此先感谢
Educ 2014年

2
是的,我可以尝试。:-)您也可以尝试使用IrfanView的批处理转换器,这可能会有所帮助。
TFuto

Answers:


29

我在Ubuntu上使用ImageMagick调整了这些大图片的大小。

convert -resize 10% source.jpg dest.jpg

它花了一段时间,但是使用1 GB的RAM,该工具为其自身创建了一个4.7 GB的类似交换文件。

有关更多信息,请参见AskUbuntu


3
您还可以为其指定特定的分辨率,例如convert -resize 1898x2859 ...
Michael Hampton

2
也可以在OSX上使用。
o0'。

1
还有一个Windows版本。
Tonny 2014年

9

从理论上讲,大多数图像格式可以逐步缩小,而无需将整个图像加载到内存中,但是除了JPEG之外,我不知道任何真正实现此功能的工具:它的特殊之处在于,您不仅可以在不加载完整分辨率的情况下进行缩小,而且由于没有创造性地使用DCT(JPEG是在频域中编码的,因此不必将其解码为与原始图像完全相同的分辨率),还可以在不解码完整分辨率的情况下进行缩小。

默认的JPEG解码工具(命令行中的libjpeg-progs包在Linux中,寻找djpeg.exe适用于Windows)将缩减庞大的JPEG“常规”应用程序之前,甚至可以完成加载它:

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

我也已经在某些GUI应用程序中看到了“边下载边缩小”选项,但是目前无法调用它。

基准!

比较ImageMagickdjpeg的内存使用情况和处理时间对大图像的缩减比例(将图像缩放cjpeg,因此生成的图像也是jpg,以便与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,2GB和1,4MB相比,速度要慢10倍以上-这是在一个相对较小的13k x 11k映像上,该映像可以完全放入RAM,因此不会发生交换。

另一方面,使用djpeg进行降级也有其自身的局限性:缩放因子的选择受到限制,并且重采样方法无法更改。


7

您也可以尝试在Windows上使用Picture Resizer(我喜欢这个工具)

您只需将图片拖放到这个简单的EXE上,如果您有许多图片要转换,因为您一次可以执行许多操作,则该功能特别有用。

所有的配置都是通过EXE的命名完成的,这是出色的IMO

我从来没有尝试过使用大文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.