怎么将PNG图片中指定区域透明化处理

whw111222 2007-02-09 10:25:27
如题。
目前我是这样考虑的,首先将PNG文件读入(二进制),然后加入tRNS数据块(PNG中存储图像透明的数据块 ),我做了个试验,用ps做了个1X2的图片,然后将一个像素透明化,对比2个图片二进制有何不同,前者没有tRNS数据块,后者有了tRNS数据块,但是后者不光增加了tRNS数据块,IDAT数据块的内容也全变了,目前的难点是IDAT中存储的是什么信息,和别的数据块是怎么联系的,期待大人赐教
...全文
1109 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
whw111222 2007-02-11
  • 打赏
  • 举报
回复
感谢shepherds的回答,透明就是那个意思
目前难点是怎么实现?
现在我做了个例子,把一幅PNG的图片的某个区域透明化后,当时是对的,但是用GDI+的image.Save(L"Mosaic2.bmp", &pngClsid, NULL)保存后并没有透明,查看PNG的源码也没有tRNS数据块?也就是说透明没有被保存,微软不支持吗?
请问,微软支持对PNG格式文件进行透明处理后的保存吗。
shepherds 2007-02-09
  • 打赏
  • 举报
回复
不知道你说的透明是显示时的透明还是叠加时的透明?
一般的透明处理是这样的:
有2张图片,一张为背景,一张为前景,现将前景在背景上显示出来,但需要前景的某个区域要把背景的相应区域显现出来,即为透明。
处理时,比较背景中区域的点是否在对应的前景中要透明的那个区域里,如果不是,则取前景的像素,如果是,则背景的像素。如此,则将背景的那个区域透出来了。

不知道是不是你想要的。
whw111222 2007-02-09
  • 打赏
  • 举报
回复
顶起来

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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