关于图象

delphi_xizhousheng 2003-12-31 06:23:20
有A,B两张图片,希望将图片B覆盖到图片A上,合并成一张图片,同时要求图片B的指定颜色部分(如 白色部分)透明。请给个思路,最后有代码
...全文
65 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphi_xizhousheng 2004-01-02
  • 打赏
  • 举报
回复
给分了:-)
delphi_xizhousheng 2004-01-01
  • 打赏
  • 举报
回复
xizhousheng@sina.com
多谢
constantine 2004-01-01
  • 打赏
  • 举报
回复
留下email,给你个例子,很不错的。
pp616 2004-01-01
  • 打赏
  • 举报
回复
用的光栅操作。
仔细看中见BitBlt的dwRop参数
delphi_xizhousheng 2004-01-01
  • 打赏
  • 举报
回复
up
delphi_xizhousheng 2004-01-01
  • 打赏
  • 举报
回复
先谢了,请问一下:是先上图层进行透明处理再和另一图层合并,还是先合并再进行透明处理?
constantine 2004-01-01
  • 打赏
  • 举报
回复
已经发了,记得给点分奖励奖励,拨号很辛苦的。:D
pp616 2004-01-01
  • 打赏
  • 举报
回复
用光栅操作就可以了。

void __fastcall DrawTransparentBitmap(HDC dc,Graphics::TBitmap *bmp,TRect *rect, TColor rgbMask)
{
/*参数说明
dc:目标设备
bmp:需要进行透明处理的图象
rect:需要进行透明处理的图象的尺寸,此参数可以省略换成在函数中计算得到。
rgbMask:透明处理部分的颜色
*/
HDC ImageDC,MaskDC;
HBITMAP Image,pOldImage;
HBITMAP maskBitmap,pOldMaskDCBitmap;
Graphics::TBitmap *hbmp=new Graphics::TBitmap;
hbmp->Assign(bmp);
Image=hbmp->Handle;
ImageDC=CreateCompatibleDC(dc);
pOldImage=SelectObject(ImageDC,Image);
MaskDC=CreateCompatibleDC(dc);
maskBitmap=CreateCompatibleBitmap(MaskDC,rect->Width(),rect->Height());
pOldMaskDCBitmap =SelectObject(MaskDC,maskBitmap);
SetBkColor(ImageDC,rgbMask);
BitBlt(MaskDC,0,0,rect->Width(),rect->Height(),ImageDC,0,0,SRCCOPY);
SetBkColor(ImageDC,RGB(0,0,0));
SetTextColor(ImageDC,RGB(255,255,255));
BitBlt(ImageDC,0, 0, rect->Width(), rect->Height(),MaskDC,0,0,SRCAND);
BitBlt(dc,rect->left,rect->top,rect->Width(),rect->Height(),MaskDC,0,0,SRCAND);
BitBlt(dc,rect->left,rect->top,rect->Width(),rect->Height(),ImageDC,0,0,SRCPAINT);
SelectObject(MaskDC,pOldMaskDCBitmap);
SelectObject(ImageDC,pOldImage);
DeleteObject(maskBitmap);
DeleteDC(ImageDC);
DeleteDC(MaskDC);
hbmp->FreeImage();
delete hbmp;
}
hy1080 2003-12-31
  • 打赏
  • 举报
回复
合到是好办也有码,不过要指定透明可能就不艰办了。至少写起来麻烦。
delphi_xizhousheng 2003-12-31
  • 打赏
  • 举报
回复
是不是有两个DC进行alpha混合?
【后台管理员功能】系统设置:设置网站简介、关于我们、联系我们、加入我们、法律声明广告管理:设置小程序首页轮播图广告和链接留言列表:所有用户留言信息列表,支持删除会员列表:查看所有注册会员信息,支持删除 资讯分类:录入、修改、查看、删除资讯分类录入资讯:录入资讯标题、内容等信息管理资讯:查看已录入资讯列表,支持删除和修改资讯评论列表:所有用户的评论信息列表资讯评论管理:支持对评论信息审核,删除;审核后的信息用户才可见 图像分类:录入、修改、查看、删除图像分类录入图像:录入图像标题、内容等信息管理图像:查看已录入图像列表,支持删除和修改图像评论列表:所有用户的评论信息列表图像评论管理:支持对评论信息审核,删除;审核后的信息用户才可见 【网站功能】用户注册:填写手机账号和密码,注册新用户登录功能:注册普通账号登录;登录后可以修改用户的基本信息,也可以退出。关于我们:关于我们、联系我们、加入我们、法律声明轮播广告:后台设置首页轮播广告图,可以连接到广告页面。留言反馈:用户填写李哭咽的主题、联系人、电话、邮箱、留言内容;后台管理可以查看留言列表,可以删除留言。 图像转换:上传本地图片,通过百度AI智能,返回转换后的图像图片并显示 资讯阅读:游客和用户都可以进行资讯的阅读。资讯收藏:阅读到有兴趣的资讯,注册登录的用户可以进行收藏操作。资讯评论:阅读资讯的时候,登录的用户,可以发表评论;后台审核后显示。 图像阅读:游客和用户都可以进行图像信息的阅读。图像收藏:阅读到有兴趣的图像信息,注册登录的用户可以进行收藏操作。图像评论:阅读图像信息的时候,登录的用户,可以发表评论;后台审核后显示。 资讯浏览:记录用户所有浏览过的资讯信息资讯收藏:收藏的感兴趣的资讯文章,可以直接点击去阅读,支持删除。资讯评论:列出参与评论的文章、评论内容、审核状态。 图像浏览:记录用户所有浏览过的图像信息图像收藏:收藏的感兴趣的图像信息,可以直接点击去阅读,支持删除。图像评论:列出参与评论的图像信息、评论内容、审核状态。 用户信息:姓名、联系方式、邮箱、头像、简介、介绍等,支持随时修改;用户注册的信息后台管理员可见;后台管理员可以删除。密码修改:修改注册的密码。退出登录:清除登录的cookie,返回到首页。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧