5

我正在使用 NeuQuant 量化算法(https://code.google.com/p/android-gif-project/source/browse/trunk/GIFproject1/src/com/ui/NeuQuant.java?r=5)将 jpeg 缩小为 256 色图像,但速度很慢(320x240 图像约 1 秒,640x480 图像约 3 秒)。即使有多个线程,我也无法将处理时间提高到一个不错的水平(理想情况下在每个图像范围内 100 毫秒)。

有谁知道将图像的调色板减少到 256 色的更快算法?

4

2 回答 2

4

提取 256 种颜色有点极端,但您应该看看 Median Cut Quantization。这是一个实现:github 链接
另一种选择是八叉树
不过,您确实应该对这两种解决方案进行基准测试,并寻找改进它们的方法。

此外,通过 RenderScript 运行算法可能会大大加快它的速度。

于 2015-06-06T15:36:03.883 回答
2

基于快速成对最近邻的算法可生成高质量的 256 色 8 位 PNG 图像,最大限度地减少具有红唇的照片的颜色损失,并支持 256 种或更少颜色的透明度。该方法的时间复杂度为 O(N log N)。

演示android项目是用Java编写的,使用按钮点击将示例图像直接转换为256色。github链接

演示应用截图

于 2018-10-15T03:48:07.620 回答