问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能给个asp.net的图片水印源码啊

发布网友 发布时间:2022-04-19 04:18

我来回答

1个回答

热心网友 时间:2022-04-19 05:47

using System;
using System.IO;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
public class ImgHelper
{
/// <summary>
/// 功能生成小图,+版权信息(图片水印)
/// </summary>
/// <param name="path">要保存的实际路径</param>
/// <param name="file">aspx页面中的上传控件</param>
/// <param name="width">宽</param>
/// <param name="height">高</param>
/// <param name="mode">裁剪方式:hw指定高宽缩放(自动分析长宽比)、w指定宽,高按比例、h指定高,宽按比例、cut指定高宽裁减</param>
/// <param name="strInfo">版权信息</param>
/// <param name="left">左边位置</param>
/// <param name="top">上边位置</param>
/// <returns>返回经过处理后的文件名</returns>
public static string GetSamilImageAddCopyrightByImg(string path, FileUpload file, int width, int height, string mode, string Path_sypf)
{
string FileName = filename(file);
Path_sypf = path + Path_sypf;
if (File.Exists(FileName) == false)
{
file.PostedFile.SaveAs(path + FileName);//保存原图
System.Drawing.Image oldimage = System.Drawing.Image.FromFile(path + FileName);
System.Drawing.Image copyImage = System.Drawing.Image.FromFile(Path_sypf);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(oldimage);
g.DrawImage(copyImage, new System.Drawing.Rectangle(oldimage.Width - copyImage.Width,
oldimage.Height - copyImage.Height, copyImage.Width, copyImage.Height),
0, 0, copyImage.Width, copyImage.Height, System.Drawing.GraphicsUnit.Pixel);
string YFileName = "y_" + FileName;
switch (file.PostedFile.FileName.Split(".".ToCharArray())[1].ToUpper())
{
case "JPEG":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "JPG":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "GIF":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Gif);
break;
case "PNG":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Png);
break;
case "BMP":
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Bmp);
break;
default:
oldimage.Save(path + YFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
}
int towidth = width;
int toheight = height;
int x = 0;
int y = 0;
int ow = oldimage.Width;
int oh = oldimage.Height;
float owh = ((float)ow) / ((float)oh);
switch (mode)
{
case "hw"://指定高宽缩放(自动分析长宽比)
if (ow >= oh)
{
towidth = width;
toheight = Convert.ToInt32((float)towidth / owh);
}
else
{
toheight = height;
towidth = Convert.ToInt32((float)toheight * owh);
}
break;
case "w"://指定宽,高按比例
toheight = oldimage.Height * width / oldimage.Width;
break;
case "h"://指定高,宽按比例
towidth = oldimage.Width * height / oldimage.Height;
break;
case "cut"://指定高宽裁减(不变形)
if ((double)oldimage.Width / (double)oldimage.Height > (double)towidth / (double)toheight)
{
oh = oldimage.Height;
ow = oldimage.Height * towidth / toheight;
y = 0;
x = (oldimage.Width - ow) / 2;
}
else
{
ow = oldimage.Width;
oh = oldimage.Width * height / towidth;
x = 0;
y = (oldimage.Height - oh) / 2;
}
break;
default:
break;
}
//新建一个bmp图片,并制定宽高
System.Drawing.Image thumbnailImage = new System.Drawing.Bitmap(towidth, toheight);
//新建一个画板
Graphics newpic = System.Drawing.Graphics.FromImage(thumbnailImage);
//设置高质量插值法
newpic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
newpic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
newpic.Clear(Color.Transparent);
//在指定位置并且按指定大小绘制原图片的指定部分
newpic.DrawImage(oldimage, new Rectangle(0, 0, towidth, toheight),
new Rectangle(x, y, ow, oh), GraphicsUnit.Pixel);
string S_FileName = "s_" + FileName;
switch (file.PostedFile.FileName.Split(".".ToCharArray())[1].ToUpper())
{
case "JPEG":
case "JPG":
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "GIF":
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "PNG":
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Png);
break;
case "BMP":
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
default:
thumbnailImage.Save(path + S_FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
}
thumbnailImage.Dispose();
copyImage.Dispose();
g.Dispose();
oldimage.Dispose();
File.Delete(path + FileName);
return S_FileName;//返回处理后的图片名称
}
else//如果图片已经存在则返回""
{
return "";
}
}
/// <summary>
/// 生成文件名(包括路径)
/// </summary>
/// <param name="file">上传控件</param>
/// <param name="filesrc">上传到的目录</param>
/// <returns>根据当前时间并加入随机数</returns>
public static string filename(FileUpload file)
{
//得到当前时间精确到毫秒
string FileName = DateTime.Now.ToString("yyMMddHHmmss") + DateTime.Now.Millisecond.ToString();
//得到随机数
char[] s = new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G'
,'J','K','L','M','N','P','Q','R','T','U','V','W'
,'X','Z'};
string num = "";
Random r = new Random();
for (int i = 0; i < 6; i++)
{
num += s[r.Next(0, s.Length - 1)].ToString();
}
//得到文件上传路径
string[] FileSrc = file.PostedFile.FileName.Split(@"\".ToCharArray());
string YFileName = FileSrc[FileSrc.Length - 1];
//得到文件扩展名
string FileEx = YFileName.Split('.')[1].ToUpper();
//得到文件名并返回
return FileName + num + "." + FileEx;
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 资产管理员工作总结ppt怎么写 一个已婚女人经常把自己家里的事情告诉别外一个已婚男人,这样的关系是什么关系? 方舟:生存进化似鸡龙怎么驯化 似鸡龙属性一览 分享 怎么夸一个优秀成功的女人 怎么夸一个姑娘优秀 如何夸女生的一些细节? 方舟生存进化肿头龙蛋饲料代码多少 教师怎么的需要专业化,简述现代社会中 教师专业化的内涵 教师的专业品质主要包括哪些内容 什么是教师专业化? 教师专业化的基本内涵是什么 手机微云网盘怎样同步文件 求问什么是教师的专业化?如何理解? 一,什么是教师专业发展?教师专业发展与教师专业化的关系是怎样的 教师的专业化是指什么? 教师职业的专业性表现在哪些方面,推进教师专业化有何意义? 在职研究生和全日制研究生 工资待遇一样吗? 建议平等对待非全日制研究生,在职场这类人群会受到不公平待遇吗? 微波炉能热茶鸡蛋吗 可以用u盘把电脑上xbox360的游戏考在xbox360吗? xbox360 如何用u盘从电脑拷贝游戏在xbox360 上面玩? xbox360用u盘拷游戏 谁教我打凯里麻将啊 男士腰带开胶用什么胶水 皮带要用什么胶水粘 牛皮皮带断了用哪种胶水粘 用什么胶水可以快速粘接皮带 皮带接头用什么芯胶? 皮带冷粘接用什么样的胶水可以有较好的粘接效果 汉字起源于韩国,有错吗? Ep150皮带接头那几种胶? 橡胶输送带粘接用什么胶水 有人说汉字是来自韩国,不是中国吗??到底是哪国的??? 请问汉字是韩国人创造的吗? 国际社会认为汉字是韩国发明的吗? 皮带输送机皮带如何粘接的 梦见自己订婚了,前男友要我悔婚,家里居然同意了,怎么回事 jquery怎么根据name获得标签 jquery如何根据多选框name来获得选中的值。