gpt4 book ai didi

image-processing - 如何将任何图像缩小到 <300 字节

转载 作者:行者123 更新时间:2023-12-04 08:33:27 24 4
gpt4 key购买 nike

我想拍摄一张不同尺寸的图片 (jpg/png) 并将其转换为一个非常小的图片文件。我将定义非常小,低于 300 字节。

图像质量不是很重要(显然)。我正在考虑将转换后的图像高度像素化为约 4 种颜色。

什么是最好的图像格式?

是否有 ImageMagick 转换命令来执行此操作?

最佳答案

解决方案

这是一个 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:

dither=None dither=Riemersma dither=FloydSteinberg

和原文:

original

关于image-processing - 如何将任何图像缩小到 <300 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19966376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com