代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
图片合并
作者:
/ 发布于
2011/1/12
/
494
<div> /// <summary> /// 合并两张图片,支持不透明度和透明色 /// </summary> /// <param name="b0">图片一</param> /// <param name="b1">图片二</param> /// <param name="X">起始坐标X</param> /// <param name="Y">起始坐标Y</param> /// <param name="b1_alpha">图片二的不透明度</param> /// <param name="TransColor">被作为透明色处理的颜色</param> /// <param name="delta">透明色的容差,类似Ps中的魔棒的容差。</param> /// <returns>合并后的图片</returns> public static Bitmap KiMerge(Bitmap b0, Bitmap b1, int X, int Y, int b1_alpha,Color TransColor,int delta) { if (b0.Equals(null) || b1.Equals(null)) { return null; } <div> int w0 = b0.Width; int h0 = b0.Height;</div> <div> int w1 = b1.Width; int h1 = b1.Height;</div> <div> int w, h;</div> <div> if (X + w1 > w0) { w = w0 - X; } else { w = w1; } <div> if (Y + h1 > h0) { h = h0 - Y; } else { h = h1; } <div> BitmapData srcData = b0.LockBits(new Rectangle(X, Y, w, h), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); BitmapData dstData = b1.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);</div> <div> unsafe { byte* pIn = (byte*)srcData.Scan0.ToPointer(); byte* pLogo = (byte*)dstData.Scan0.ToPointer();</div> <div> for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) {</div> <div> // 判断透明色 Color c = Color.FromArgb(pLogo[2], pLogo[1], pLogo[0]); if (!ColorIsSimilar(c, TransColor, delta)) {</div> <div> float bili = (float)b1_alpha / (float)255; // 不是透明色,加权平均 float inbili = 1.0f - bili;</div> <div> int r, g, b;</div> <div> b = (int)(pIn[0] * inbili + pLogo[0] * bili); g = (int)(pIn[1] * inbili + pLogo[1] * bili); r = (int)(pIn[2] * inbili + pLogo[2] * bili);</div> <div> pIn[0] = (byte)b; pIn[1] = (byte)g; pIn[2] = (byte)r; } pIn += 3; pLogo += 3; } <div> pIn += srcData.Stride - w * 3; pLogo += dstData.Stride - w * 3; } <div> b0.UnlockBits(srcData); b1.UnlockBits(dstData); } <div> return b0; } <div></div>
试试其它关键字
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3