我正在使用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秒)。即使有多个线程,我也无法将处理时间提升到合适的水平(理想情况下,每个图像范围为100ms)。
有没有人知道更快的算法将图像的调色板减少到256色?
答案 0 :(得分:1)
提取256种颜色有点像边缘情况,但你应该看看中位数切割量化。
这是一个实现:github link
另一种选择是octree
你应该对两种解决方案都进行测试,并寻找改进它们的方法。
此外,通过RenderScript运行算法可能会让您加快速度。
答案 1 :(得分:0)
基于快速成对最近邻算法的算法可生成高质量256色8位PNG图像,从而最大程度地减少了红唇照片的色彩损失,并支持256种或更少的具有透明度的颜色。该方法的时间复杂度为O(N log N)。
演示android项目是用Java编写的,单击按钮即可将示例图像直接转换为256色。 github link