图片alpha blending的计算
作者联系方式:YU TAO <yut616 at sohu dot com>
一幅彩色图像的每一个像素用R,G,B三个分量表示,若每一个分量用8位,那么一个像素共用3X8=24位表示。
在用32位表示一个像素时,若R,G,B分别用8位表示,剩下的8位常称为α通道(alpha channel)位。它用来表示该像素怎样产生特技效果,即通常我们说的半透明。
alpha的取值一般为0到255。
为0时,表示是全透明的,即图片是看不见的。为255时,表示图片是显示原始图的。中间值即为半透明状态。
计算alpha blending时,通常的方法是将源像素的RGB值,分别与目标像素(如背景)的RGB按比例混合,最后得到一个混合后的RGB值。
方法:
在microwindows中也有相似的代码:
;
}
dst8 += dlinelen_minus_w4;
src8 += slinelen_minus_w4;
}假设你使用的数据是YUV数据,那么依据YUV与RGB的转换公式:
.114B
U= (B-Y)*0.565
V= (R-Y)*0.713也能够直接对YUV应用上面的公式计算alpha blending,不必转换成RGB再混合。
图片alpha blending的计算的更多相关文章
- 图片Alpha预乘的作用[转]
Premultiplied Alpha 这个概念做游戏开发的人都不会不知道.Xcode 的工程选项里有一项 Compress PNG Files,会对 PNG 进行 Premultiplied Alp ...
- Android中图片占用内存的计算
Android中图片占用内存的计算 原文链接 http://blog.sina.com.cn/s/blog_4e60b09d01016133.html 在Android开发中,我现在发现很多人还不 ...
- 【Unity Shaders】Alpha Test和Alpha Blending
写在前面 关于alpha的问题一直是个比较容易摸不清头脑的事情,尤其是涉及到半透明问题的时候,总是不知道为什么A就遮挡了B,而B明明在A前面.这篇文章就总结一下我现在的认识~ Alpha Test和A ...
- (转)【Unity Shaders】Alpha Test和Alpha Blending
转自:http://blog.csdn.net/candycat1992/article/details/41599167 写在前面 关于alpha的问题一直是个比较容易摸不清头脑的事情,尤其是涉及到 ...
- 【Unity Shader】---Alpha Blending的意义
Alpha Blending 即Alpha混合 Blending 就是处理透明度的,处理光栅化最后阶段,显示在屏幕上的颜色 1 Blend Off 关闭alpha混合 2 混合公式:Blend Src ...
- 图像处理------透明混合 - Alpha Blending效果
基本原理: 图像的透明混合有个专属名词– Alpha Blending 对任意两张图像可以合成为一张图像,合成图像的像素取值根据数学公式: RGB3 = (1- a) * RGB1 + a * RGB ...
- iOS:获取图片Alpha图片
-(void)createImages { // Load the alpha image, which is just the same Ship.png image used in the cli ...
- 设置图片Alpha
Drawable ico = getResources().getDrawable(R.drawable.search_box); mSearchLayou ...
- OpenCV - 图片二值化,计算白色像素点的个数
直接上代码吧: import cv2 import numpy as np from PIL import Image area = def getWhitePixel(img): global ar ...
随机推荐
- 基于Qt有限状态机的一种实现方式和完善的人工智能方法
基于Qt有限状态机的一种实现方式和完善的人工智能方法 人工智能在今年是一个非常火的方向,当然了.不不过今年,它一直火了非常多年,有关人工智能的一些算法层出不穷.人工智能在非常多领域都有应用,就拿我熟悉 ...
- netfilter/iptables 结构要点
转载请注明:http://blog.csdn.net/yeasy/article/details/44311169 四张表,每一个表有若干链. filter INPUT(路由表决策后,到本机的进程) ...
- HDU 4125 Moles 段树+KMP
意甲冠军: 特定n, 下面是一个1-n该装置. 下面的二进制字符串. 按给定的建立二叉树安排. 然后遍历树(根->左子树->根->右子树->根) 当遍历节点 如果右值为奇数入栈 ...
- Log4NET 数据库
阅读目录 Log4NET简介 前提 详细步骤 回到顶部 Log4NET简介 log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种 ...
- JavaScript之二:this
在JavaScript中,this的指代对象是什么?最精辟的解释却只有一句话: when a function of an object was called, the object will be ...
- EMVTag系列5《8E 持卡人验证方法(CVM)名单》
L: var. up to 252 -R(需求):数据必须存在,在读应用数据过程中,终端不检查 依照优先顺序列出卡片应用支持的全部持卡人验证方法 注:一个应用中能够有多个CVM列表,比如一个用于国内交 ...
- 网络编程I/O功能介绍
read和write #include <unistd.h> ssize_t read(int fd, void *buf, size_t count); ssize_t write(in ...
- 开发并调试 Mail Add-in
开发并调试 Mail Add-in (mail app for Outlook) 准备工作 如果你的邮箱搭建在 Exchange Server 上,则可以创建邮件应用程序(Mail Add-in)来扩 ...
- 一个SQL面试题
面试问题都是基于 bug统计分析续(一)基于SQL的Bug统计方法 中3-2节的讨论抽象出来的. 题目:如果一张表有AC两列,怎么找各种C里不同A的数目.并列出相相应的C的值,并找出每种C下A最多的A ...
- ArcEngine下一个TIN生成的轮廓
太晚了,直接连接的源代码: /// <summary> /// TIN生成等高线 /// </summary> /// <param name="pInterv ...