我怎样才能做到这一点?程序化解决方案 (Objective-c) 很棒,但即使是非程序化解决方案也很好。
我有 pixelmator -> 但这并没有给你选项。我似乎也无法使用预览来做到这一点。
我试过谷歌搜索,但到目前为止还没有找到解决方案。我能够用来执行此操作的唯一工具是 TexturePacker,但它会创建一个 Sprite 表。
最佳答案
您可以使用 libpng将 PNG 图像转换为三字节 (8:8:8) RGB。然后您可以下采样到 RGB565 的 5:6:5 16 位颜色值。如果r
、g
、b
分别为8位颜色(以unsigned char类型存储),则16位RGB565值为:
((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3)
您可以通过四舍五入而不是切碎来改进这一点,注意不要溢出值。当原始 8 位值都相等时,您还可以强制绿色值等于蓝色和红色值。否则,最初为灰色的颜色可能会在转换后无意中呈现出颜色。
https://stackoverflow.com/questions/10118374/