SDL戴着面具发li

如何解决SDL戴着面具发li

| 我有一个SDL_image / surface(原始),我想“遮住”另一个SDL_image / surface,该SDL_image / surface是一个遮罩,用于从原始文件中复制部分内容。 遮罩使用255定义要保留的部分,使用0定义需要从图像中删除的区域。 我目前正在遍历遮罩和原始图像的像素,这在输出中引起很多问题。 是否有使用SDL的blitting功能来执行此操作的现有技术?     

解决方法

听起来您的“遮罩”是一个Alpha通道。创建具有Alpha支持的SDL_image。     ,如果有人正在寻找解决方案,请添加SDL2答案。没有其他库。 SDL2 API中提供以下功能:
int SDL_SetColorKey(SDL_Surface* surface,int          flag,Uint32       key)
用于在表面上设置透明像素。在下面的示例中,我的业余爱好代码片段是在加载图片时使用的。
void* MGWindow::loadBMPImage(std::string fileName,bool transparent) 
{
    SDL_Surface* loadedImage = NULL;
    SDL_Texture* optimizedImage = NULL;
    loadedImage = SDL_LoadBMP(fileName.c_str());
    if(loadedImage != NULL)
    {
        if(transparent)
        {
            // TODO: Make it possible to have other color codes than
            // zero represent transparency
            SDL_SetColorKey(loadedImage,SDL_TRUE,0);
        }
        optimizedImage = SDL_CreateTextureFromSurface(m_Renderer,loadedImage);
        SDL_FreeSurface(loadedImage);
    }
    return (void*)optimizedImage;
}
参考: https://wiki.libsdl.org/SDL_SetColorKey     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?