YUV/NV12、ARGB8888图像同比例缩放,不拉伸处理

1)图像处理入门级程序设计,分享给将要学习或者正在学习图像开发的同学。

2)内容属于原创,若转载,请说明出处。

3)提供相关问题有偿答疑和支持。

需求:基于SigmaStar平台SSC375(也适用于SSC333 SSC335 SSC377 SSC359 SSC339 等等),实现图像不拉伸同比例缩放,当原始图像尺寸与目标图像的尺寸宽高比不一致的时候,补充/填充剩余部分颜色为黑色/或者其他颜色;例如原始的16:9图像是1920x1080的图像,缩小到600x480,但是希望保持16:9的宽高比,如下:
c58b3241fe6448c889d957aee9f01b50.png
如下是处理之后的两种尺寸示意图:
88e8c7ca6f2c4a5fb0376fdfc81c6764.png
SigmaStar的SSC375平台提供特殊API,用来给到用户对内存中的图像数据做缩放拉升裁剪等操作,但是不支持同比例缩放,看下官方提供的SigmaStar的Doc中SCL的章节使用说明:
cb9b11d542c54b3cbc69390ac0b64e34.png
其中2.15章节介绍了一个API叫MI_SCL_StretchBuf,用于缩放、拉伸、裁剪指定内存中的图像数据
03f67606a54d44e1ac23b276d74f9ccc.png
如下是三个形参:
9358809bb67e4e5daec057523604b4ee.png

因此以上API可以看出,其使用就是对内存buf进行操作和填充,因此可以借助这个API进行同比例的缩放,然后差异的部分可以填充黑色或者其他颜色,如下是整个源码的实现,支持YUV(NV12)以及ARGB8888的格式转换:我主页有下载链接
e4219a77f764407e912c19e553df81d4.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值