关于CxImage解析 透明的PNG图片,得到的结果图片并不透明,请教高人,如何解决,给个思路也行,十分感谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于CxImage解析 透明的PNG图片,得到的结果图片并不透明,请教高人,如何解决,给个思路也行,十分感谢相关的知识,希望对你有一定的参考价值。

参考技术A Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Private Sub Form_Load()
Dim Ret As Long
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
'将窗体的透明度设成128(0-255)
SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA
End Sub

关于VC6中CxImage6.00类的使用,谢谢!!

我第一次使用cximage,准备做一些关于图像处理的东西,然后我用的是VC6,我是这么使用的
首先,我下载的cximage600_full,解压后,编译了全部dsw文件
然后,我在c盘新建了一个image的工程,然后我把所有的lib文件都放在了C:\IMAGE\LIB中,然后在project setting-lnk-object/library modules中设置了lib/png.lib lib/libdcr.lib lib/jpeg.lib lib/cximage.lib lib/jasper.lib lib/jbig.lib lib/mng.lib lib/png.lib lib/tiff.lib lib/zlib.lib lib/demou.lib lib/cximagecrtu.lib,即包含了所有的lib文件
然后,在project setting-C/C++-preprocessor-Additional include directories中填写了cximage的目录c:\TDDOWNLOAD\cximage\cximage600_full\cximage,其余的code generation和precomlied headers都按照说明设置的,此时编译正常。
然后我准备加入指令,就是经典的图形转换
CxImage image;
// bmp -> jpg

image.Load("image.bmp", CXIMAGE_FORMAT_BMP);
if (image.IsValid())
if(!image.IsGrayScale()) image.IncreaseBpp(24);
image.SetJpegQuality(80);
image.Save("image.jpg",CXIMAGE_FORMAT_JPG);

结果出现以下错误信息:
ImageDoc.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CxImage::Save(char const *,unsigned long)" (?Save@CxImage@@QAE_NPBDK@Z)
ImageDoc.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CxImage::Load(char const *,unsigned long)" (?Load@CxImage@@QAE_NPBDK@Z)
首先我想问的是,我的开始配置方法有问题吗?
然后,出现这个错误应该怎么解决?我看网上是说好像跟什么unicode有关,请高手指点,谢谢!!!

cximage的库都是用的unicode的编码方式写得,所以你的应用程序最好也要用unicode编码方式来写。 参考技术A 你的情况比较难说……我下载的Cximage是ANSI版本的;另外看你的出错提示也不像是UNICODE同错;更像是你包含的LIB文件路径错了;你要么在VC的工作路径的LIB里添加C:\IMAGE\LIB这一项;要么修改你的project setting-lnk-object/library modules,全部改成
./lib/png.lib
这种形式。(当然,lib目录要在你的工程目录下面)
参考技术B 这种形式。(当然,lib目录要在你的工程目录下面)

以上是关于关于CxImage解析 透明的PNG图片,得到的结果图片并不透明,请教高人,如何解决,给个思路也行,十分感谢的主要内容,如果未能解决你的问题,请参考以下文章

MFC对话框加上PNG图片后,图片上的控件可以设置透明吗?

为啥MFC只能用位图不能用png图?

关于VC6中CxImage6.00类的使用,谢谢!!

CxImage类库的使用问题!在windowsce系统下vs2005平台,使用CxImage类来在对话框显示各种格式的图片!

MFC + CxImage 实现自绘半透明按钮

关于在ios中使用png与jpg图片的区别