☞ ░ 前往老猿Python博文目录

Alpha预乘(Premultiplied Alpha)和PRGBA

一般来说四通道图像数据保存的都是ARGB或RGBA,其R、G、B值还没有进行任何透明化处理,但这种格式在图像合成时会存在两个问题:

  1. 由于对有Alpha通道的图片进行合成处理时,先要获取原始图像RGB的值,这个原始图像真正的RGB值必须考虑Alpha通道,因此会进行一次计算:源图像像素颜色 X alpha。如果这种计算都在合成时进行处理,性能处理压力就会集中在合成阶段;
  2. 在图像合成时,有时需要进行插值处理,即根据两个图像的差异,采用插值计算来生成一个或多个中间图像,这种插值一般都是以RGB值进行插值计算,但带Alpha通道的图像RGB并不是最终显示颜色的RGB,因此这种插值可能效果不理想。

为了解决这个问题,在图像处理过程中引入了预乘 (premultiplied)这个概念,经过预乘处理的图像格式就称为PRGBA。预乘的算式是NewR=OldR*Alpha,Alpha取值为0-1(如果为0-255,除以255即可),保存的数据通常称为(ar,ag,ab,a),这样PRGBA格式的像素四通道值保存了真正展现时的像素RGB值,又保存了Alpha通道的值,既解决了前面说的两个问题,又可以还原原始RGBA数据。

PRGBA这个表示方法,由于预乘后保存的值是整数,会丢失小数点后的数值,很大可能引入误差,特别是RGB值本身很小Alpha很大的情况下,这个误差可能会比较大。

关于阿尔法通道、RGBA的更多内容请参考《图像(层)正常混合模式详解(上)》、《百度百科-RGBA》。

更多图形图像处理术语请参考《图像处理术语解释:图像的灰度、色相、饱和度、亮度、明度、阿尔法通道、HSL、HSV、RGBA、ARGB和PRGBA概念以及Premultiplied Alpha(Alpha预乘)等基础概念详解》。

跟老猿学Python、学5G!

☞ ░ 前往老猿Python博文目录

最新文章

  1. 【BZOJ-1127】KUP 悬线法 + 贪心
  2. C#进阶目录
  3. Android端接收和发送cookie
  4. caffe中关于数据进行预处理的方式
  5. 编写Redis启停服务脚本
  6. 深搜+回溯 POJ 2676 Sudoku
  7. cocospod 安装和使用
  8. Thrift框架介绍
  9. 《STL源码剖析》chapter2空间配置器allocator
  10. LA 3998 Prime k-tuple
  11. R语言画正弦曲线
  12. 图tp delDataById问题
  13. AX_Unit
  14. Word Embedding/RNN/LSTM
  15. windows下多tomcat部署
  16. js判断用户的浏览器
  17. Fedora防火墙配置
  18. DevExpress ASP.NET v18.2新功能详解(四)
  19. ubuntu16.04下的htk安装编译
  20. window批处理——bat文件的编写

热门文章

  1. leetcode148two-sum
  2. 想更改Github仓库中的某个文件结构
  3. 论文解读 - MaskGAN:BETTER TEXT GENERATION VIA FILLING IN THE _____
  4. vue 常用操作
  5. python_os_shutil_获取文件夹下所有文件的大小
  6. 6.java设计模式之适配器模式
  7. 最全Linux搭建SVN服务端教程
  8. ubuntu 18.04安装RTL8821CE无线网卡驱动
  9. python多线程——如何停止一个死循环的线程
  10. FL Studio钢琴卷轴之刷子工具以及其他