一种简洁的为图片设置Logo的算法,支持透明度选项
来源:互联网 发布:淘宝重新拆分订单 编辑:程序博客网 时间:2024/06/08 13:18
之前提到的算法是基于原理性的,代码比较繁琐。最近看到一个用色彩矩阵的例子,觉得很简洁,分享一下。原理就不多说了,因为线性代数什么的早就放弃了 :D
/// <summary>
/// 合并图片,支持透明度选项
/// </summary>
/// <param name="b0">原始图</param>
/// <param name="b1">LOGO图</param>
/// <param name="val">透明度,取值[0,1],数值越大LOGO越不透明</param>
/// <param name="x">LOGO在原始图上的起始位置X</param>
/// <param name="y">LOGO在原始图上的起始位置Y</param>
/// <returns>完成后的贴图</returns>
public Bitmap SetLogo(Bitmap b0,Bitmap b1,float val,int x,int y)
{
if (b0 == null) return null;
if (b1 == null) return b0;
Graphics g = null;
try
{
g = Graphics.FromImage(b0);
float[][] data =
{
new float[] {1f,0f,0f,0f,0f},
new float[] {0f,1f,0f,0f,0f},
new float[] {0f,0f,1f,0f,0f},
new float[] {0f,0f,0f,val,0f},
new float[] {0f,0f,0f,0f,1f}
};
ColorMatrix mx = new ColorMatrix(data);
ImageAttributes imgatt = new ImageAttributes();
imgatt.SetColorMatrix(mx, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
g.DrawImage(b1, new Rectangle(x, y, b1.Width, b1.Height), 0, 0, b1.Width, b1.Height, GraphicsUnit.Pixel, imgatt);
return b0;
}
catch
{
return null;
}
finally
{
if (g != null) g.Dispose();
}
}
- 一种简洁的为图片设置Logo的算法,支持透明度选项
- 设置图片的透明度
- 为指定的View设置透明度效果
- C++Builder 设置图片的透明度
- android 如何设置图片颜色的透明度
- Java如何设置图片的透明度
- android 如何设置图片颜色的透明度
- 十进制转换为二进制的简洁算法
- 使ie6.0支持.png图片的透明度
- javascript 设置图片透明度与图片的水平垂直旋转
- 20款简洁独特的logo设计
- 封装,一种简洁的美
- 图片透明度的处理
- alpha:图片的透明度
- 设置窗口的透明度
- 设置窗口的透明度
- 设置表单的透明度
- 设置DIV的透明度
- mysql和sqlserver的分页
- JAVA中String与StringBuffer的区别
- Thread.currentThread().getContextClassLoader().getResourceAsStream("myConfig.xml"));//在src下寻找myC
- eclipse和myeclipse的汉化
- 打成jar包的xml配置文件无法找到路径,System.getProperty("user.dir")解决该问题
- 一种简洁的为图片设置Logo的算法,支持透明度选项
- distcc: a fast, free distributed C/C++ compiler
- BeanUtils.copyProperties拷贝bean属性的时候属性为空
- java原生sql操作数据库
- 定位: relative和absolute区别
- 人工智能如何实现
- 视图
- 忘记sqlserver2000的密码 修改密码
- FreeBSD moun U-disk