java把png改为yuv图像_(转)图像解码之二——使用libpng解码png图片

本文介绍了如何使用libpng库将PNG图像解码,并转换为YUV格式。通过设置输出参数和注册自定义转换函数,实现了PNG到YUV的数据转换。文章详细阐述了libpng解码过程,包括查询图像信息、设置转换参数、更新信息、读取数据和结束读取的步骤。
摘要由CSDN通过智能技术生成

4: png_read_info(png_ptr,

info_ptr);

该函数将会把输入png数据的信息读入到info_ptr数据结构中。

b)查询图像信息

前面提到png_read_info将会把输入png数据的信息读入到info_ptr数据结构中,接下来需要调用API查询该信息。

1: png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,

2: &interlace_type, int_p_NULL, int_p_NULL);

c)设置png输出参数(转换参数)

这步非常重要,用户可以指定输出数据的格式,比如RGB888,ARGB8888等等输出数据格式。通过png_set_xxxxx函数来实现,例如如下代码:

1: // expand images of all color-type and bit-depth to 3x8 bit RGB images

2: // let the library process things like alpha, transparency, background

3: if (bit_depth == 16)

4: png_set_strip_16(png_ptr);

5: if (color_type == PNG_COLOR_TYPE_PALETTE)

6: png_set_expand(png_ptr);

7: if (bit_depth<8)

8: png_set_expand(png_ptr);

9: if (png_get_valid(png_ptr, info_ptr, PNG_INFO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值