我在EasyX库IMAGE类的基础上写了一个支持透明度相关操作的图片类,下面是实现将这个图片类输出到某绘图设备上的print()函数。其中,为什么pointer[n]和debug_ptr[n](声明在被注释的代码处)(n就是一个正整数)不一样,并且pointer[n]是0x00000000。望大佬解决。
void print() {
if (isshow) {
IMAGE buffer = image;
//DWORD* pointer = GetImageBuffer(&buffer);
//DWORD* debug_ptr = GetImageBuffer(&image);
IMAGE* buffer_device = GetWorkingImage();
for (int i = 0; i < buffer.getwidth() * buffer.getheight(); i++) {
pointer[i] = (((pointer[i] >> 24) * (DWORD)alpha / (DWORD)255) << 24) + (pointer[i] & 0x00ffffff);
}
transparentimage(buffer_device, coord.X, coord.Y, &buffer);
}
}
操作系统:Windows10专业版22H2 EasyX版本:EasyX2023大暑版 编译器:Visual C++编译器 开发环境:Visual Studio2022+VC环境