网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 C#图片处理工具类含绘制水印阴影保存等
内容
    一个C#写的图片处理基础类,功能包括获取或设置要修改的图像路径、获取或设置在画的图片路径(水印图片)、获取或设置水印在修改图片中的右边距、获取或设置水印在修改图片中距底部的高度、获取或设置要绘制水印的透明度,注意是原来图片透明度的百分比、获取或设置要输出图像的路径、绘制水印、绘制图形坐标、绘制阴影图像、保存文件等功能:
    view sourceprint?001using System;
    002using System.Collections.Generic;
    003using System.Linq;
    004using System.Text;
    005using System.IO;
    006using System.Drawing;
    007using System.Drawing.Drawing2D;
    008using System.Drawing.Imaging;
    009namespace CLB.Utility.Tools
    010{
    011 public class ImageModification
    012 {
    013 #region "member fields"
    014 private string modifyImagePath = null;
    015 private string drawedImagePath = null;
    016 private int rightSpace;
    017 private int bottoamSpace;
    018 private int lucencyPercent = 70;
    019 private string outPath = null;
    020 #endregion
    021 public ImageModification()
    022 {
    023 }
    024 #region "propertys"
    025 ///
    026 /// 获取或设置要修改的图像路径
    027 ///
    028 public string ModifyImagePath
    029 {
    030 get { return this.modifyImagePath; }
    031 set { this.modifyImagePath = value; }
    032 }
    033 ///
    034 /// 获取或设置在画的图片路径(水印图片)
    035 ///
    036 public string DrawedImagePath
    037 {
    038 get { return this.drawedImagePath; }
    039 set { this.drawedImagePath = value; }
    040 }
    041 ///
    042 /// 获取或设置水印在修改图片中的右边距
    043 ///
    044 public int RightSpace
    045 {
    046 get { return this.rightSpace; }
    047 set { this.rightSpace = value; }
    048 }
    049 //获取或设置水印在修改图片中距底部的高度
    050 public int BottoamSpace
    051 {
    052 get { return this.bottoamSpace; }
    053 set { this.bottoamSpace = value; }
    054 }
    055 ///
    056 /// 获取或设置要绘制水印的透明度,注意是原来图片透明度的百分比
    057 ///
    058 public int LucencyPercent
    059 {
    060 get { return this.lucencyPercent; }
    061 set
    062 {
    063 if (value >= 0 && value <= 100)
    064 this.lucencyPercent = value;
    065 }
    066 }
    067 ///
    068 /// 获取或设置要输出图像的路径
    069 ///
    070 public string OutPath
    071 {
    072 get { return this.outPath; }
    073 set { this.outPath = value; }
    074 }
    075 #endregion
    076 #region "methods"
    077 ///
    078 /// 开始绘制水印
    079 ///
    080 public void DrawImage()
    081 {
    082 Image modifyImage = null;
    083 Image drawedImage = null;
    084 Graphics g = null;
    085 try
    086 {
    087 //建立图形对象
    088 modifyImage = Image.FromFile(this.ModifyImagePath);
    089 drawedImage = Image.FromFile(this.DrawedImagePath);
    090 g = Graphics.FromImage(modifyImage);
    091 //获取要绘制图形坐标
    092 int x = modifyImage.Width - this.rightSpace;
    093 int y = modifyImage.Height - this.BottoamSpace;
    094 //设置颜色矩阵
    095 float[][] matrixItems ={
    096 new float[] {1, 0, 0, 0, 0},
    097 new float[] {0, 1, 0, 0, 0},
    098 new float[] {0, 0, 1, 0, 0},
    099 new float[] {0, 0, 0, (float)this.LucencyPercent/100f, 0},
    100 new float[] {0, 0, 0, 0, 1}};
    101 ColorMatrix colorMatrix = new ColorMatrix(matrixItems);
    102 ImageAttributes imgAttr = new ImageAttributes();
    103 imgAttr.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
    104 //绘制阴影图像
    105 g.DrawImage(
    106 drawedImage,
    107 new Rectangle(x, y, drawedImage.Width, drawedImage.Height),
    108 0, 0, drawedImage.Width, drawedImage.Height,
    109 GraphicsUnit.Pixel, imgAttr);
    110 //保存文件
    111 string[] allowImageType = { ".jpg", ".gif", ".png", ".bmp", ".tiff", ".wmf", ".ico" };
    112 FileInfo file = new FileInfo(this.ModifyImagePath);
    113 ImageFormat imageType = ImageFormat.Gif;
    114 switch (file.Extension.ToLower())
    115 {
    116 case ".jpg":
    117 imageType = ImageFormat.Jpeg;
    118 break;
    119 case ".gif":
    120 imageType = ImageFormat.Gif;
    121 break;
    122 case ".png":
    123 imageType = ImageFormat.Png;
    124 break;
    125 case ".bmp":
    126 imageType = ImageFormat.Bmp;
    127 break;
    128 case ".tif":
    129 imageType = ImageFormat.Tiff;
    130 break;
    131 case ".wmf":
    132 imageType = ImageFormat.Wmf;
    133 break;
    134 case ".ico":
    135 imageType = ImageFormat.Icon;
    136 break;
    137 default:
    138 break;
    139 }
    140 MemoryStream ms = new MemoryStream();
    141 modifyImage.Save(ms, imageType);
    142 byte[] imgData = ms.ToArray();
    143 modifyImage.Dispose();
    144 drawedImage.Dispose();
    145 g.Dispose();
    146 FileStream fs = null;
    147 if (this.OutPath == null || this.OutPath == "")
    148 {
    149 File.Delete(this.ModifyImagePath);
    150 fs = new FileStream(this.ModifyImagePath, FileMode.Create, FileAccess.Write);
    151 }
    152 else
    153 {
    154 fs = new FileStream(this.OutPath, FileMode.Create, FileAccess.Write);
    155 }
    156 if (fs != null)
    157 {
    158 fs.Write(imgData, 0, imgData.Length);
    159 fs.Close();
    160 }
    161 }
    162 finally
    163 {
    164 try
    165 {
    166 drawedImage.Dispose();
    167 modifyImage.Dispose();
    168 g.Dispose();
    169 }
    170 catch { ;}
    171 }
    172 }
    173 #endregion
    174 }
    175}
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/14 16:21:24