首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FreeImage库(C#)减少PNG-8调色板中的颜色计数

使用FreeImage库(C#)减少PNG-8调色板中的颜色计数
EN

Stack Overflow用户
提问于 2012-02-10 17:08:11
回答 1查看 1.7K关注 0票数 3

我使用FreeImageNET列表将我的位图量化为

代码语言:javascript
复制
using (FreeImageAPI.FreeImageBitmap fiBitmap = FreeImageAPI.FreeImageBitmap.FromHbitmap(bmp.GetHbitmap()))
            {
                if (fiBitmap.ColorDepth > 24)
                {
                    fiBitmap.ConvertColorDepth(FreeImageAPI.FREE_IMAGE_COLOR_DEPTH.FICD_08_BPP);
                }

                //quantize using the NeuQuant neural-net quantization algorithm 
                fiBitmap.Quantize(FreeImageAPI.FREE_IMAGE_QUANTIZE.FIQ_NNQUANT, 256);


                fiBitmap.Save("test_z.png", FreeImageAPI.FREE_IMAGE_FORMAT.FIF_PNG, FreeImageAPI.FREE_IMAGE_SAVE_FLAGS.PNG_Z_BEST_COMPRESSION);

                //fiBitmap.Save(ms, FreeImageAPI.FREE_IMAGE_FORMAT.FIF_PNG, FreeImageAPI.FREE_IMAGE_SAVE_FLAGS.PNG_Z_DEFAULT_COMPRESSION);
            }

这给了我一个PNG-8,有256种颜色的调色板.使用Photoshop我发现,我可以进一步缩小规模,如果我使用自适应算法与减少调色板,例如128,64,16等。重新打开它再次显示Photoshop填充在那些剩余(较高)索引的灰色级别。

我无法让FreeImageAPI.FreeImageBitmap.Quantize()生成一个类似的PNG,它具有有限的调色板,是一个可以同时指定算法和调色板大小的la PIL convert()

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-09 14:33:36

最后通过使用因特网上的开源代码重新实现量化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9231771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档