GetPixelAddress()函数Alpha通道会丢失】的更多相关文章

CImage类中GetPixelAddress()函数来设置获取对应的颜色值是发现Alpha无效. void CGBImage::Load(){ CImage sourceImage; sourceImage.Load(L"C:\\Users\\Ju'k\\Desktop\\CGaussBlur\\1.png"); int bpp = sourceImage.GetBPP(); int width = sourceImage.GetWidth(); int height = sourc…
带Alpha通道的图像(ARBG)在通过GDIPlus::Bitmap::FromHBITMAP等转为GDI+位图,再存储时,透明区域会变成纯黑(也有可能是纯白?).   网上找了两段保持透明的实现代码,列在下边,经测试,第一段无效,第二段有效,这两段代码正好可以对比说明:FromHBITMAP在拷贝图像数据时,原图中的Alpha数据确实没有Copy过来,而并非是未设置图像属性的问题.   第一段的思路是:直接用FromHBITMAP创建一个GDI+位图,新建另一个带PixelFormat32b…
今天有人在QQ群里问GDI能不能支持带alpha通道的线条绘制? 大家的答案当然是否定的,很多人推荐用GDI+. 一个基本的图形引擎要包括几个方面的支持:位图绘制,文字绘制,矢量绘制(如矩形,线条). 可惜GDI这个20多年前发明的老古董,对这几项的绘制, 除了位图绘制可以通过AlphaBlend支持alpha通道,其他绘制都不支持alpha通道. 那有没有方法让能通过纯GDI让文字和矢量的绘制也支持alpha通道呢? 讨论这个问题之前,我们先看一下用GDI函数在支持alpha通道的DC上绘制会…
#include <windows.h>#include <GL/glut.h>#include <GL/glaux.h>#include <stdio.h> #pragma comment( lib, "opengl32.lib" )// 链接时使用OpenGL32.lib#pragma comment( lib, "glu32.lib" )// 链接时使用GLu32.lib  #pragma comment( li…
#include <windows.h>#include <GL/glut.h>#include <GL/glaux.h>#include <stdio.h> #pragma comment( lib, "opengl32.lib" )// 链接时使用OpenGL32.lib#pragma comment( lib, "glu32.lib" )// 链接时使用GLu32.lib  #pragma comment( li…
参考: http://www.delphibbs.com/delphibbs/dispq.asp?lid=2190768 Windows 2000后,为了支持类似MAC界面的Alpha通道混合效果,提供了GDI+,提供了很多的界面功能函数,可以实现很好的界面效果.例如可以使用UpdateLayeredWindow来实现窗体的颜色透明.但是一旦 Form 被定义为利用 LayeredWindow ,窗口的绘图不再响应沿用多年的 WM_Paint 消息. UpdateLayeredWindow(hw…
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源(当然你也可以从官网下载). ========================================== 分割线 ========================================== 写在前面 从这篇开始是一个全新的章节:透明效果(Transparency).之前在制作LOGO闪光效…
Alpha其作用是要实现一种半透明效果. 假设一种不透明的东西颜色是A,另一种透明的东西颜色是B,那么透过B去看A,看上去的颜色C就是B与A的混合颜色.设置B的透明度为alpha(取值为0-1,0为完全透明,1为不透明) R(C)=alpha*R(B)+(1-alpha)*R(A) G(C)=alpha*G(B)+(1-alpha)*G(A) B(C)=alpha*B(B)+(1-alpha)*B(A) 融合因子 首先,Direct3D中依然是用Alpha通道来实现多个像素颜色值的融合.每个像素…
参考: http://www.delphibbs.com/delphibbs/dispq.asp?lid=2190768 Windows 2000后,为了支持类似MAC界面的Alpha通道混合效果,提供了GDI+,提供了很多的界面功能函数,可以实现很好的界面效果.例如可以使用UpdateLayeredWindow来实现窗体的颜色透明.但是一旦 Form 被定义为利用 LayeredWindow ,窗口的绘图不再响应沿用多年的 WM_Paint 消息. UpdateLayeredWindow(hw…
之前结合网上的一些代码及ATL::CImage的实现,自己写了一个将HBITMAP以PNG格式保存到文件到函数.见上一篇日记. 不过,后来换了个环境又发现了问题,昨天和今天上午把<Windows程序设计>中位图处理相关的部分又粗略瞄了一下,然后把之前的函数改了一下,现在在新环境下也可以了,当然,这个函数也并不十分严谨,但是考虑到位图格式的历史渊源和复杂性,测试起来目测会相当麻烦,还是不要深究的好.而且,现在基本上都是32位图像,老的格式中很多东西都已无用武之地,所以且将就用着. 首先,幸好需要…