我想拍摄不同大小的图像(jpg / png)并将其转换为非常小的图像文件。我将非常小的定义为300字节以下。
图像质量不是很重要(显然)。我正在考虑将转换后的图像极其像素化为~4种颜色。
最佳图像格式是什么?
是否有ImageMagick转换命令来执行此操作?
答案 0 :(得分:5)
这是一个执行您想要的ImageMagick命令:
convert <in>.<extension> -sample 1x1 -strip <out>.<extension>
图像质量有点受损,但正如你所说,对你来说并不是很重要。
这是一个可能更有用的版本:
convert <in>.<extension> -dither FloydSteinberg -resize 32x32 -colors 4 -strip <out>.gif
有关更多变化,请参见下文。在测试中,GIF给出了最小的输出。
我在1.7M测试图片上的结果in.jpg
:
for type in jpg gif png; do convert -strip -sample 1x1 in.jpg out.$type; done
然后ls
给出:
-rw------- 1 collins collins 1.7M Nov 13 16:04 in.jpg
-rw------- 1 collins collins 286 Nov 13 16:07 out.jpg
-rw------- 1 collins collins 43 Nov 13 16:07 out.gif
-rw------- 1 collins collins 82 Nov 13 16:07 out.png
所以,看起来像GIF和PNG是更好的选择,虽然JPG仍然让你低于300字节标记。
为了更好地逼近~4种颜色,你可以这样做。
for type in jpg gif png; do convert -strip -sample 2x2 in.jpg out.$type; done
虽然现在JPG太大了:
-rw------- 1 collins collins 1.7M Nov 13 16:04 in.jpg
-rw------- 1 collins collins 423 Nov 13 17:03 out.jpg
-rw------- 1 collins collins 50 Nov 13 17:03 out.gif
-rw------- 1 collins collins 93 Nov 13 17:03 out.png
另一种获得~4种颜色的方法,它允许我们增加输出图像尺寸:
for type in jpg gif png; do
for dither in None Riemersma FloydSteinberg; do
convert in.jpg -dither $dither -resize 32x32 -colors 4 -strip out.$dither.$type;
done
done
现在GIF和一些PNG使其低于300字节:
-rw------- 1 collins collins 1.7M Nov 13 16:04 in.jpg
-rw------- 1 collins collins 1.9K Nov 13 17:30 out.None.jpg
-rw------- 1 collins collins 2.1K Nov 13 17:30 out.Riemersma.jpg
-rw------- 1 collins collins 2.1K Nov 13 17:30 out.FloydSteinberg.jpg
-rw------- 1 collins collins 225 Nov 13 17:30 out.None.gif
-rw------- 1 collins collins 229 Nov 13 17:30 out.Riemersma.gif
-rw------- 1 collins collins 234 Nov 13 17:30 out.FloydSteinberg.gif
-rw------- 1 collins collins 263 Nov 13 17:30 out.None.png
-rw------- 1 collins collins 332 Nov 13 17:30 out.Riemersma.png
-rw------- 1 collins collins 319 Nov 13 17:30 out.FloydSteinberg.png
,例如,以下是三个输出GIF:
和原文:
答案 1 :(得分:3)
如果您只使用几种确切的颜色用于图像,那么我建议使用GIF,因为它只存储放置在文件中的调色板中的颜色索引,但不是完全RGB。因此,您在Photoshop中创建一个4色的GIF图像,每个像素只有2位(或像这样) 有关索引颜色和图像格式的详细信息,可以让他们看到Indexed colors