VC合并两张位图图片

时间:2023-02-10 18:57:42
比如说一张位图很小上面有两个字"算数",背景为黑色
另外一张位图很大,
现在要合并这两张位图,在大一点的位图上面画满小的位图,也就是大一点的位图后面都是“算数”这样的位图铺满
并且算数的黑色背景要去掉。求思路

17 个解决方案

#1


按像素行列复制,如果是黑色像素就跳过不复制

#2


引用 1 楼  的回复:
按像素行列复制,如果是黑色像素就跳过不复制


不是很清楚,能再具体点么,我刚刚了解了一下bmp的结构

#3


做一个“算数”这样的位图的等大黑白的Mask图像,用dc->BitBlt()中的SRCAND和SRCINVERT的方式调用两次画来实现这个功能呗

#4


引用 3 楼  的回复:
做一个“算数”这样的位图的等大黑白的Mask图像,用dc->BitBlt()中的SRCAND和SRCINVERT的方式调用两次画来实现这个功能呗


用BitBlt画上去之后 怎么保存成bmp文件呢

#5


我想做的是分别解析两张位图
得到他们的位图文件头,位图信息头,彩色表,和位图的字节阵列。
然后将他们合成一个图片

#6


先提取小位图的前景物体,背景为黑色,很容易提取,获取小位图的长、宽,以及前景物体在小位图的相对位置,然后平铺融合在大位图中就可以了吧

#7


引用 6 楼  的回复:
先提取小位图的前景物体,背景为黑色,很容易提取,获取小位图的长、宽,以及前景物体在小位图的相对位置,然后平铺融合在大位图中就可以了吧


初来乍道 没怎么理解啊

#8


是不是加水印?

#9


你创建一个CBitmap对象bitmap,
preBitmap = dc->SelectObject(bitmap);
dc->BitBlt(....);
dc->SelectObject(preBitmap);
你查一下msdn中CBitmap的说明,应该能知道怎么生成一个图像
引用 4 楼  的回复:
引用 3 楼  的回复:
做一个“算数”这样的位图的等大黑白的Mask图像,用dc->BitBlt()中的SRCAND和SRCINVERT的方式调用两次画来实现这个功能呗


用BitBlt画上去之后 怎么保存成bmp文件呢

#10


TransparentBlt(。。。,RGB(0,0,0));也可以

#11


TransparentBlt,两个logo我都是这么做的

#12


引用 8 楼  的回复:
是不是加水印?


对呀 怎么加呢

#13


回复于:2012-10-23 12:52:52做一个“算数”这样的位图的等大黑白的Mask图像,用dc->BitBlt()中的SRCAND和SRCINVERT的方式调用两次画来实现这个功能呗 

#14


南奥图片水印王最新版本下载和安装指南 

这个软件是我写的,你可以下载用下看看,具体实现使用了cximage第三方库,他有源代码的,所以自己想不如学习高手写的代码 

#15


直接在第2幅图上写“算数”就好了,记得选“背景透明”。

#16


图像拼接融合

#17


VC合并两张位图图片

#1


按像素行列复制,如果是黑色像素就跳过不复制

#2


引用 1 楼  的回复:
按像素行列复制,如果是黑色像素就跳过不复制


不是很清楚,能再具体点么,我刚刚了解了一下bmp的结构

#3


做一个“算数”这样的位图的等大黑白的Mask图像,用dc->BitBlt()中的SRCAND和SRCINVERT的方式调用两次画来实现这个功能呗

#4


引用 3 楼  的回复:
做一个“算数”这样的位图的等大黑白的Mask图像,用dc->BitBlt()中的SRCAND和SRCINVERT的方式调用两次画来实现这个功能呗


用BitBlt画上去之后 怎么保存成bmp文件呢

#5


我想做的是分别解析两张位图
得到他们的位图文件头,位图信息头,彩色表,和位图的字节阵列。
然后将他们合成一个图片

#6


先提取小位图的前景物体,背景为黑色,很容易提取,获取小位图的长、宽,以及前景物体在小位图的相对位置,然后平铺融合在大位图中就可以了吧

#7


引用 6 楼  的回复:
先提取小位图的前景物体,背景为黑色,很容易提取,获取小位图的长、宽,以及前景物体在小位图的相对位置,然后平铺融合在大位图中就可以了吧


初来乍道 没怎么理解啊

#8


是不是加水印?

#9


你创建一个CBitmap对象bitmap,
preBitmap = dc->SelectObject(bitmap);
dc->BitBlt(....);
dc->SelectObject(preBitmap);
你查一下msdn中CBitmap的说明,应该能知道怎么生成一个图像
引用 4 楼  的回复:
引用 3 楼  的回复:
做一个“算数”这样的位图的等大黑白的Mask图像,用dc->BitBlt()中的SRCAND和SRCINVERT的方式调用两次画来实现这个功能呗


用BitBlt画上去之后 怎么保存成bmp文件呢

#10


TransparentBlt(。。。,RGB(0,0,0));也可以

#11


TransparentBlt,两个logo我都是这么做的

#12


引用 8 楼  的回复:
是不是加水印?


对呀 怎么加呢

#13


回复于:2012-10-23 12:52:52做一个“算数”这样的位图的等大黑白的Mask图像,用dc->BitBlt()中的SRCAND和SRCINVERT的方式调用两次画来实现这个功能呗 

#14


南奥图片水印王最新版本下载和安装指南 

这个软件是我写的,你可以下载用下看看,具体实现使用了cximage第三方库,他有源代码的,所以自己想不如学习高手写的代码 

#15


直接在第2幅图上写“算数”就好了,记得选“背景透明”。

#16


图像拼接融合

#17


VC合并两张位图图片