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;
}
}
}
查看全文
相关阅读:
MYSQL router 自动均衡负载
mysql router 自动failover测试
Oracle数据库安装时 environment variable path 大于 1023
windows删除多余启动引导项
开机显示 invalid partition table
有关软件的商业模式与软件代码的加密
.Net 开源控件 NPlot使用小结
41.关于Intellij IDEA菜单项中Compile、Make和Build的区别
Maven:mirror和repository 区别
28. Spring Boot配置方式
原文地址:https://www.cnblogs.com/adam/p/959895.html
最新文章
python 源码解读2
可视化算法
PYTHON 源码阅读
Exploring Python Code Objects
The internals of Python string interning
Why Python is Slow
Python integer objects implementation
Python dictionary implementation
Python string objects implementation
Python的基础--对象 转
热门文章
python基础(5):深入理解 python 中的赋值、引用、拷贝、作用域
slots
Python基础教程之List对象 转
python源码解析
《Linux内核设计与实现》读书笔记
C 高级编程 1
MYSQL-- binlog事件详解
mysql 5.7 多源复制 原创
sync_binlog innodb_flush_log_at_trx_commit 浅析 传
mysql-----gtid_executed详解 原创
Copyright © 2011-2022 走看看