MFC中,用CImage如何读取指定路径的图片

哇咔咔2023-01-31  18

思路

首先将路径写好,然后确认对应路径中是否有该图片。若有,读取图片即可。

代码如下:

CImage img

img.Load(L"c:\\1.jpg")

CImage img

wstring filename

cout<<"输入图片文件路径:"

scanf("%ws",filename)

 img.Load(filename)

//CImage 加载带半透明png函数

void LoadCImage(CImage*pImage,LPCTSTRpPath)

{

pImage->Load(pPath)

if (pImage->IsNull())

{

return

}

CImageTransparent(pImage)

}

/* 解决CIMAGE 绘制半透图片背景不能半透的问题*/

void CImageTransparent(CImage*pImage)

{

if (pImage->GetBPP() == 32) //确认该图像包含Alpha通道

{

for (inti=0i<pImage->GetWidth()i++)

{

for(int j=0j<pImage->GetHeight()j++)

{

byte*pByte = (byte*)pImage->GetPixelAddress(i, j)

pByte[0]= pByte[0] * pByte[3]/ 255

pByte[1]= pByte[1] * pByte[3]/ 255

pByte[2]= pByte[2] * pByte[3]/ 255

}

}

}

}

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

JAVA例子

1

2

3

4

5

6

7

8

9

public class UserManagerImpl implements UserManager {

private UserDao userDao

public UserManagerImpl(UserDao userDao){

this.userDao=userDao

}

public void save(String username,String password){

this.userDao.save(username, password)

}

}

注意: 由于Java不允许像C++那样为函数的参数提供缺省值,因此在构造函数中也不能使用缺省值.

构造函数的特点:

1.它的函数名与类名相同;

2.它可以重载;

3.不能指定返回类型,即使是void也不行;

4.虽然在一般情况下,构造函数不被显式调用,而是在创建对象时自动被调用。但是并不是不能被显示调用。有些时候是一定要显示调用的,只要是父类有带参的构造函数,在子类中就必须显示的调用父类的构造函数,因为子类的构造器在实例化时无法找到父类的构造函数(当父类有自己写的无参构造函数时,子类也不用显示调用)。


转载请注明原文地址:https://juke.outofmemory.cn/read/2854094.html

最新回复(0)