大神,请问这段代码是什么意思?
为什么一定要用bm来获取图片的宽高而不能直接用img=::newImage(L"素材.png");直接加载到img里面呢?然后下面说的去除alpha通道是什么意思?然后为...
为什么一定要用bm来获取图片的宽高而不能直接用img = ::new Image(L"素材.png");直接加载到img里面呢?
然后下面说的去除alpha通道是什么意思?然后为什么img是Image类却可以用Bitmap的构造函数来构造呢?
还有第一行Bitmap bm = new Bitmap(L"素材.png");为什么Bitmap对象可以载入PNG格式的图片啊?那我是否可以直接用Bitblt来显示PNG格式的图片啊?
另外,为什么要在构造函数里面DrawImage呢?执行构造函数的时候窗口不是还没出来吗?那么 展开
然后下面说的去除alpha通道是什么意思?然后为什么img是Image类却可以用Bitmap的构造函数来构造呢?
还有第一行Bitmap bm = new Bitmap(L"素材.png");为什么Bitmap对象可以载入PNG格式的图片啊?那我是否可以直接用Bitblt来显示PNG格式的图片啊?
另外,为什么要在构造函数里面DrawImage呢?执行构造函数的时候窗口不是还没出来吗?那么 展开
1个回答
展开全部
1、其实我本来是打算直接修改它图像内部数据的……要这样做的话必须用Bitmap,这样才能LockBits然后操作。不过后来发现简单判断Alpha通道的方法好帆姿饥像不太行,所以后来就没有用了,但是没有改回Image来
2、alpha通道就是透明色,GDI+是支持的。如果要我说为什么这样做的话,……我可以说我只是懒得用 新建缓冲区——缓冲区刷白——往缓冲区画背景态返——画册仔框——输出这样的路线吗?本来想直接用bkimg->Clone来代替前三个步骤,但是发现尼玛的这图居然有透明色,这样做的话会导致原来的图像不能被完全覆盖(因为有alpha通道),所以就想出了把alpha通道去掉的想法。。。。。。
3、这是C++的基础知识,基类指针可以指向子类对象
4、Bitmap只是说载入以后它会是位图的形式,没说它是用来载入bmp的啊……
5、BitBlt能不能显示PNG图片我不确定,我记得我以前试验的时候,GDI貌似是不支持Alpha通道的……不支持的话也不是说就不能显示png,只要你能载入(嗯,只要能载入……)png,BitBlt就能给你刷上去,用不带透明度支持的方式刷上去
6、你注意看我到底是Draw到窗口上去了还是Draw到缓冲区里去了……
2、alpha通道就是透明色,GDI+是支持的。如果要我说为什么这样做的话,……我可以说我只是懒得用 新建缓冲区——缓冲区刷白——往缓冲区画背景态返——画册仔框——输出这样的路线吗?本来想直接用bkimg->Clone来代替前三个步骤,但是发现尼玛的这图居然有透明色,这样做的话会导致原来的图像不能被完全覆盖(因为有alpha通道),所以就想出了把alpha通道去掉的想法。。。。。。
3、这是C++的基础知识,基类指针可以指向子类对象
4、Bitmap只是说载入以后它会是位图的形式,没说它是用来载入bmp的啊……
5、BitBlt能不能显示PNG图片我不确定,我记得我以前试验的时候,GDI貌似是不支持Alpha通道的……不支持的话也不是说就不能显示png,只要你能载入(嗯,只要能载入……)png,BitBlt就能给你刷上去,用不带透明度支持的方式刷上去
6、你注意看我到底是Draw到窗口上去了还是Draw到缓冲区里去了……
追问
追答
好吧…………
来自:求助得到的回答
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询