我想减少c#中位图的唯一颜色数量。
我想这样做的原因是,最初使用三种颜色但由于许多因素(包括压缩)而创建的图像现在具有三种以上的颜色(即相邻像素相互影响)
知道如何做到这一点?
解决方案可能是将整个位图从RGB转换为索引颜色系统或某些可应用于单个像素的功能。
任何GDI +或Emgu(opencv)解决方案对我都有好处。
在http://nquant.codeplex.com查看nQuant。这比Magnus引用的MSDN文章中的代码质量高得多。它还需要考虑Alpha层,而msdn文章仅评估RGB。源代码可用,并附有blog post,详细讨论代码和算法。
msdn上有一篇名为Optimizing Color Quantization for ASP.NET Images的文章可能对你很有帮助,它有很好的example code。