Shi*_*yal 2 compression image imagemagick mogrify
我有一些分辨率为20400x28056的扫描图像.我想让他们使用imagemagick进行压缩.我试过
convert ToBeCompressed.jpeg -quality 70 output.jpeg但这个命令让我的笔记本电脑崩溃了.我认为它无法处理如此大的分辨率.请给我任何建议.
要检查的一些事项......您的图像对应于大约1.6GB的原始数据,因此您可能会发现需要运行64位环境而不是32位环境.如果您使用的是Windows,则可能需要在NTFS文件系统而不是FAT上运行,因为FAT文件系统虽然大小可达130GB,但不能支持大于2GB的单个文件,如果运气不好,可能不支持4GB.
最后,您是否可以考虑调整图像大小而不是降低图像质量,如果您在阅读时动态调整图像大小,您可能会做得更好,因为它资源消耗较少.所以,假设您决定接受每侧一半长度的图像(原始区域的1/4)
convert input.jpg[50%x50%] -quality 70 output.jpg
Run Code Online (Sandbox Code Playgroud)
根据您之后对图像的实际需要,您可以使用ImageMagick的stream实用程序将图像分割成块.它一次读取一行图像,因此它只使用很少的内存.因此,为了将图像的两半变为原始格式,您可以这样做
stream -extract 20400x14028+0+0 ToBeCompressed.jpg tophalf.rgb
stream -extract 20400x14028+0+14028 ToBeCompressed.jpg bottomhalf.rgb
Run Code Online (Sandbox Code Playgroud)
然后,如果您想将这些原始RGB文件转换为JPG,您可以这样做
convert -depth 8 -size 20400x14028 tophalf.rgb tophalf.jpg
Run Code Online (Sandbox Code Playgroud)
你可以追求的另一种途径可能vips就是这里所描述的.
因此,如果调用图像,则BigBoy.jpg可以将质量设置为60,例如:
vips jpegsave BigBoy.jpg BB60.jpg --Q=60
Run Code Online (Sandbox Code Playgroud)
这导致我的系统
ls -l Bi* BB60.jpg
-rw-r--r-- 1 mark staff 270283175 19 Mar 14:17 BB60.jpg
-rw-r--r-- 1 mark staff 997198223 19 Mar 14:07 BigBoy.jpg
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |