【问题标题】:How to load a bmp without background如何在没有背景的情况下加载bmp
【发布时间】:2012-06-04 21:20:27
【问题描述】:

所以,我试图在 allegro 中制作游戏,但我现在被这个该死的空白背景困住了,这让我非常生气,因为我知道 PNG 图像在背景中已经具有透明度,但我无法加载 png ,我已经下载了devpaks,安装了库,但仍然没有发生任何好事,如果对我来说最好的选择是使用PNG,那么请告诉我如何加载然后正确使用。

如果最好的选择仍然是使用 BMP,并且有一种算法、函数或一些代码可以使空白背景消失,请告诉我。

对于那些不明白我想要什么的人,有一个更好的解释: http://3.bp.blogspot.com/-r9BaUuMLirc/ThjzRHOMBKI/AAAAAAAAAJI/kUilPnIPJLg/s400/bola_azul.png

它目前是.png,但我在绘画中转换为.bmp,所以它使我成为一个空白背景,在快板中它显示了整个图片,我只想拥有球。

【问题讨论】:

  • bmps 本身不支持透明度。您需要声明一种神奇的颜色,然后在将图像加载到内存后赋予这些区域透明度。
  • 声明黑色作为加载表面的颜色键
  • 我了解到 allegro 已经使用洋红色作为 bmps 的默认透明度颜色,FF00FF,没关系,但我想加载 pngs 你该死的
  • 这就是 Alpha 通道的用途

标签: c++ image allegro


【解决方案1】:

正如您所评论的,在 Allegro 4 中,与 masked_blit()draw_sprite() 一起使用时,颜色 0xFF00FF 被视为透明。

要在 Allegro 4 中加载 PNG,您需要使用 loadpng 和 libpng。您可以通过set_alpha_blender() 启用 alpha 混合器来使用 8 位 alpha 通道。

如果您刚刚开始,您应该使用 Allegro 5,它具有现代 API 和对 PNG 文件的原生支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多