zoukankan
html css js c++ java
上传图片加水印
using
System;
using
System.Collections;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Web;
using
System.Web.SessionState;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.HtmlControls;
using
System.IO;
namespace
MikeCat
{
/**/
///
<summary>
///
MikeCat_WaterMark 的摘要说明。
///
*******************************
///
作者:迈克老猫
///
功能:上传图片加入水印
///
EMAIL:mikecat#mikecat.net
///
*******************************
///
</summary>
public
class
MikeCat_WaterMark : System.Web.UI.Page
{
protected
System.Web.UI.WebControls.Button Button1;
protected
System.Web.UI.HtmlControls.HtmlInputFile File1;
protected
System.Web.UI.WebControls.Image Image1;
protected
System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected
System.Web.UI.WebControls.Label Label1;
protected
System.Web.UI.WebControls.Button Button2;
private
void
Page_Load(
object
sender, System.EventArgs e)
{
//
在此处放置用户代码以初始化页面
if
(
!
Page.IsPostBack)
{
Image1.ImageUrl
=
"
mikepp.gif
"
;
}
}
Web 窗体设计器生成的代码
#region
Web 窗体设计器生成的代码
override
protected
void
OnInit(EventArgs e)
{
//
//
CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base
.OnInit(e);
}
/**/
///
<summary>
///
设计器支持所需的方法 - 不要使用代码编辑器修改
///
此方法的内容。
///
</summary>
private
void
InitializeComponent()
{
this
.Button1.Click
+=
new
System.EventHandler(
this
.Button1_Click);
this
.Button2.Click
+=
new
System.EventHandler(
this
.Button2_Click);
this
.Load
+=
new
System.EventHandler(
this
.Page_Load);
}
#endregion
private
void
Button1_Click(
object
sender, System.EventArgs e)
{
if
(File1.PostedFile.FileName.Trim()
!=
""
)
{
//
上传文件
string
extension
=
Path.GetExtension(File1.PostedFile.FileName).ToLower();
string
fileName
=
DateTime.Now.ToString(
"
yyyyMMddhhmmss
"
);
string
path
=
Server.MapPath(
"
.
"
)
+
"
/upload/
"
+
fileName
+
extension;
File1.PostedFile.SaveAs(path);
//
加文字水印,注意,这里的代码和以下加图片水印的代码不能共存
System.Drawing.Image image
=
System.Drawing.Image.FromFile(path);
Graphics g
=
Graphics.FromImage(image);
g.DrawImage(image,
0
,
0
, image.Width, image.Height);
Font f
=
new
Font(
"
Verdana
"
,
16
);
Brush b
=
new
SolidBrush(Color.Blue);
string
addText
=
"
老猫的理想http://www.mikecat.net
"
;
g.DrawString(addText, f, b,
10
,
10
);
g.Dispose();
//
保存加水印过后的图片,删除原始图片
string
newPath
=
Server.MapPath(
"
.
"
)
+
"
/upload/
"
+
fileName
+
"
_new
"
+
extension;
image.Save(newPath);
image.Dispose();
if
(File.Exists(path))
{
File.Delete(path);
}
Image1.ImageUrl
=
newPath;
//
Response.Redirect(newPath);
}
}
private
void
Button2_Click(
object
sender, System.EventArgs e)
{
//
上传文件
string
extension
=
Path.GetExtension(File1.PostedFile.FileName).ToUpper();
string
fileName
=
DateTime.Now.ToString(
"
yyyyMMddhhmmss
"
);
string
path
=
Server.MapPath(
"
.
"
)
+
"
/upload/
"
+
fileName
+
extension;
File1.PostedFile.SaveAs(path);
//
加图片水印
System.Drawing.Image image
=
System.Drawing.Image.FromFile(path);
System.Drawing.Image copyImage
=
System.Drawing.Image.FromFile( Server.MapPath(
"
.
"
)
+
"
/mikepp.gif
"
);
Graphics g
=
Graphics.FromImage(image);
g.DrawImage(copyImage,
new
Rectangle(image.Width
-
copyImage.Width, image.Height
-
copyImage.Height, copyImage.Width, copyImage.Height),
0
,
0
, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
g.Dispose();
//
保存加水印过后的图片,删除原始图片
string
newPath
=
Server.MapPath(
"
.
"
)
+
"
/upload/
"
+
fileName
+
"
_new
"
+
extension;
image.Save(newPath);
image.Dispose();
if
(File.Exists(path))
{
File.Delete(path);
}
Image1.ImageUrl
=
newPath;
}
}
}
查看全文
相关阅读:
github上总结的python资源列表【转】
Docker在windows下的使用【二】
Docker在windows下的使用【一】
RF环境安装-mac-osx10.10-基础环境-安装指南
持续集成Jenkins+sonarqube部署教程
微信朋友圈投票活动的刷票案例分析
使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】
unit3d 初次接触
python pip 安装包报 编码问题
深度学习 学习
原文地址:https://www.cnblogs.com/adam/p/959895.html
最新文章
FFTW编译以及使用
ffmpeg获取RTSP视频流信息
【STM32】使用keil提供的JSON库——Jansson
STM32F103ZET6 之 ADC 采样率的确定
Docker Mongo数据库主主同步配置方法
Docker Mongo数据库主从同步配置方法
Docker Mysql数据库双主同步配置方法
Docker Mysql数据库主从同步配置方法
实现服务高可用奇淫技巧(一)
使用 Python 将 HTML 转成 PDF
热门文章
RobotFrameWork编写接口测试及如何断言
RobotFrameWork接口项目分层及通用控制方式
RobotFrameWork环境搭建(基于HTTP协议的接口自动化)
RobotFrameWork接口设计规范
RobotFrameWork系列免费课程-开课了~
安全系列之CSRF初探
说说Python编码规范
开通微信公众号
Django表单介绍
哪些 Python 库让你相见恨晚?【转】
Copyright © 2011-2022 走看看