代码语言
.
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
】
处理图片水印
作者:
一铛
/ 发布于
2015/5/6
/
1013
#region 处理图片水印 private void addPicToImg(string filename, string watermarkfilename, ImagePosition watermarkPosition, int width, int height, float alpha) { //原始图片 Image imgPhoto = Image.FromFile(filename); // 确定其长宽 int phWidth = imgPhoto.Width; int phHeight = imgPhoto.Height; // 封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。 Bitmap bmPhoto = new Bitmap(phWidth, phHeight, PixelFormat.Format24bppRgb); // 设定分辨率 bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution); // 定义一个绘图画面用来装载位图 Graphics grPhoto = Graphics.FromImage(bmPhoto); //水印图片 将水印图片装载到一个绘图画面grWatermark Image imgWatermark = new Bitmap(watermarkfilename); // 获取水印图片的高度和宽度 int wmWidth = imgWatermark.Width; int wmHeight = imgWatermark.Height; //SmoothingMode:指定是否将平滑处理(消除锯齿)应用于直线、曲线和已填充区域的边缘。 // 成员名称 说明 // AntiAlias 指定消除锯齿的呈现。 // Default 指定不消除锯齿。 // HighQuality 指定高质量、低速度呈现。 // HighSpeed 指定高速度、低质量呈现。 // Invalid 指定一个无效模式。 // None 指定不消除锯齿。 grPhoto.SmoothingMode = SmoothingMode.AntiAlias; // 第一次描绘,将我们的底图描绘在绘图画面上 //grPhoto.Clear(Color.White); grPhoto.DrawImage(imgPhoto, new Rectangle(0, 0, phWidth, phHeight), 0, 0, phWidth, phHeight, GraphicsUnit.Pixel); // 与底图一样,我们需要一个位图来装载水印图片。并设定其分辨率 Bitmap bmWatermark = new Bitmap(bmPhoto); bmWatermark.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution); //将水印图片装载到一个绘图画面grWatermark Graphics grWatermark = Graphics.FromImage(bmWatermark); //ImageAttributes 对象包含有关在呈现时如何操作位图和图元文件颜色的信息。 ImageAttributes imageAttributes = new ImageAttributes(); //Colormap: 定义转换颜色的映射 ColorMap colorMap = new ColorMap(); //我的水印图被定义成拥有绿色背景色的图片被替换成透明 colorMap.OldColor = Color.FromArgb(255, 0, 255, 0); colorMap.NewColor = Color.FromArgb(0, 0, 0, 0); ColorMap[] remapTable = { colorMap }; imageAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap); float[][] colorMatrixElements = {new float[] {1.0f, 0.0f, 0.0f, 0.0f, 0.0f},// red红色 new float[] {0.0f, 1.0f, 0.0f, 0.0f, 0.0f},//green绿色 new float[] {0.0f, 0.0f, 1.0f, 0.0f, 0.0f},//blue蓝色 new float[] {0.0f, 0.0f, 0.0f, alpha, 0.0f},//透明度 new float[] {0.0f, 0.0f, 0.0f, 0.0f, 1.0f}}; // ColorMatrix:定义包含 RGBA 空间坐标的 5 x 5 矩阵。 // ImageAttributes 类的若干方法通过使用颜色矩阵调整图像颜色。 ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements); imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); //上面设置完颜色,下面开始设置位置 int[] position = PicPosition(watermarkPosition, phWidth, phHeight, wmWidth, wmHeight); int xPosOfWm = position[0]; int yPosOfWm = position[1]; // 第二次绘图,把水印印上去 grWatermark.DrawImage(imgWatermark, new Rectangle(xPosOfWm, yPosOfWm, int.Parse(wmWidth.ToString()), int.Parse(wmHeight.ToString())), 0, 0, wmWidth, wmHeight, GraphicsUnit.Pixel, imageAttributes); imgPhoto = bmWatermark; grPhoto.Dispose(); grWatermark.Dispose(); SavePicFormat(imgPhoto, cobPicFomart.SelectedIndex, filename, pbPicWaterMark, txtPicName.Text); imgPhoto.Dispose(); imgWatermark.Dispose(); } #endregion
试试其它关键字
图片水印
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
一铛
贡献的其它代码
(
12
)
.
判断Office版本
.
将Excel导成xml文件
.
处理图片水印
.
处理文字图片
.
生成缩略图
.
图片文字放置位置
.
保存不同类型的格式的图片和路径
.
TextBox控件设置ReadOnly="true"后台取不到值
.
confirm alert 换行
.
导出word 和中文乱码
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3