使用SFML,我可以使用以下代码来呈现任何图片格式:
SFML.Graphics.Image img = new SFML.Graphics.Image("pic.bmp");
SFML.Graphics.Texture tex = new Texture(img);
SFML.Graphics.Sprite sprite = new Sprite(tex);
renderWindow.Draw(sprite);
但是,这对于某些以8位(256种颜色)格式设置的位图(扩展名为.bmp的文件)无法正常工作。看起来SFML库正在尝试以16位或32位读取它。
有什么办法可以解决这种情况?
更新:我用油漆打开了有问题的bmp文件,并以相同的格式(8位)保存了它们,然后SFML能够正确显示这些文件。但这只是一个测试,我不能使用油漆来做,我需要一个仅代码解决方案。
答案 0 :(得分:0)
如果再次将文件保存在其他应用程序中解决了此问题,那么听起来stb_image不支持SFML,因此不支持这种特殊格式。
我强烈建议使用PNG格式,因为它支持适当的透明度并使用无损压缩。