pts*_*pts 11 jpeg images thumbnail-generator
我正在寻找适用于 Linux 的最快的命令行图像转换器,它可以读取 JPEG 图像,将其缩小到最多 1366x768,并写入质量为 50 的 JPEG 图像。像这样,但比 ImageMagick 快得多:
$ convert -resize x768 -quality 50 foo42.jpg foo42.th.jpg
# takes 0m16.713s for my test image set
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
$ <foo42.jpg djpeg | pnmscale -xysize 1366 768 | cjpeg -quality 50 >foo42.th.jpg
# takes 0m12.007s for my test image set, and has lower visual quality than ImageMagick
Run Code Online (Sandbox Code Playgroud)
所以我想要一个程序,最好是用 C 编写的,它集成了 djpeg、更高质量的 pnmscale 版本和 cjpeg。
我刚刚找到了swiggle(一个使用 libjpeg 的 C 程序),我在源代码中禁用了一些我不需要的功能,我有:
$ swiggle -f -H 768 .
# takes 0m11.378s for my test image set, yields high quality results
Run Code Online (Sandbox Code Playgroud)
你还有什么建议吗?我猜大多数图像转换器使用 libjpeg,因此很难获得比 swiggle 快得多的结果。
小智 13
到目前为止,我使用过的最快的库绝对是EPEG。它只能从 JPG 文件创建拇指,但它创建它们的速度非常快:
$ identify worldmap.jpg
worldmap.jpg JPEG 6400x3200 6400x3200+0+0 DirectClass 8-bit 6.85727mb 0.840u 0:02
Run Code Online (Sandbox Code Playgroud)
图像魔术:
$ time convert -resize 1536x768 -quality 50 worldmap.jpg im_thumb.jpg
# 2.93s user 0.23s system 85% cpu 3.718 total
Run Code Online (Sandbox Code Playgroud)
EPEG:
$ time epeg -w 1536 -h 768 -q 50 worldmap.jpg epeg_thumb.jpg
# 0.31s user 0.01s system 79% cpu 0.404 total
Run Code Online (Sandbox Code Playgroud)
我使用这个库为大量非常大的图像创建拇指。
我通过下载swiggle(命令行 JPEG 缩略图 + HTML 图像库生成器)并根据我的需要修改其源代码解决了这个问题。请参阅问题中的速度测量值(比 djpeg+pnmscale+cjpeg 快不到 10%)。
| 归档时间: |
|
| 查看次数: |
15412 次 |
| 最近记录: |