使用 win GDI 函数输出透明图像 / 输出图像并裁剪掉图片中的白色
[編輯] [转简体] (简体译文)
|
作者:huidong
| 分類:【編程】EasyX
[
8 瀏覽
0 評論
1 贊
1 踩
]
概要
putimage_white / putimage_transparent
正文
void putimage_white(int x, int y, IMAGE* img) { SetWorkingImage(img); for (int i = 0; i < img->getwidth(); i++) { for (int j = 0; j < img->getheight(); j++) { int color = getpixel(i, j); if (color != WHITE) { SetWorkingImage(); putpixel(x + i, y + j, color); SetWorkingImage(img); } } } SetWorkingImage(); }
只是裁剪了白色
上面这个函数效率太低!
推荐用这个函数:
// Windows GDI 透明贴图函数所需 lib #pragma comment( lib, "MSIMG32.lib") /** * @brief Windows GDI 函数实现透明贴图 * @param x 图像输出位置 * @param y 图像输出位置 * @param img 要输出的图像 * @param bkcolor 图像背景色,即为不输出的颜色 */ inline void putimage_transparent(int x, int y, IMAGE img, COLORREF bkcolor) { TransparentBlt(GetImageHDC(GetWorkingImage()), x, y, img.getwidth(), img.getheight(), GetImageHDC(&img), 0, 0, img.getwidth(), img.getheight(), bkcolor); }