解读DX12装载PNG图像格式

使用图像编辑软件编辑了一个宽是三个像素,高是两个像素的PNG图片。之所以是PNG格式,是因为它是不收版费的,并且支持透明像素。

六个像素分别是黑色、白色、透明色、红色、蓝色和绿色。之所以是这几个像素是因为有代表性,并且数据便于观察。

系统载入后得到的内存分布如下图,用相应颜色的框线说明了相应的数据。每个像素是32位,一个字节8位,所以一个像素四个字节,ARGB分别是其中的四个字节。

最低位是绿色,其次是蓝色、红色和透明度,每个字节十六进制是00-FF(即0-255)。

一行像素有3个,所以每行的字节数是12。由于图像数据是一维数组,所以每行字节数有用。

图像宽度3,高度2,跟图片的像素数量是对应的。有两行,所以像素总数是12×2=24字节。

第一个像素黑色,红绿蓝都没有颜色所以为0,不透明所以最高字节为FF。

第三个像素是透明色,所以透明度为0。

了解了图像数据的组成,便于载入文件后进行后期处理。比如把本来的粉色作为透明色,可以查找所有数值为0xFFFF00FF的DWORD值,替换为0x00FFFFFF。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值