All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
javascript,编写的文字放大效果_JavaScript技术_编程技术
ASP.NET(C#)经典采集代码_[Asp.Net教程]
ASP.NET,2.0中GridView无限层复杂表头的实现_[Asp.Net教程]
给.Net初学者的一些建议(共勉之)_[Asp.Net教程]
通过ADO.NET实现事务处理_[Asp.Net教程]
Asp.net,将数据库里的记录转换成json_.net资料_编程技术
.net组件开发系列(三)之武术系列-控件生命周期与控件事件机制_[Asp.Net教程]
两个SQL,Server维护技巧_[SQL,Server教程]
用.NET编写串口程序的一点心得_.net资料_编程技术
ASP.NET利用webclient获取页面源代码的解决方法_[Asp.Net教程]
Reading number is top 10 pictures
宝贝系列
Cesarean section, bloody, silently into it!1
Sexy women in 2013--1
修电脑也有这么漂亮的美女
10 powerless things in life
China railway shunting skills competition
男人巳快沦落成动物了
Forced sex girl living abroad1
Startling Russian girl blind date scene3
30 beautiful school beauty6
Download software ranking
asp.netWeb服务器高级编程
Sora aoi - one of more PK
传奇私服架设教程
Boxer vs Yellow2
尖东毒玫瑰A
Rio big adventure
Boxer vs Yellow3
Tram sex maniac 2 (H) rar bag2
Love the forty days
少妇苏霞全本
delv published in(发表于) 2014/1/16 9:30:55 Edit(编辑)
使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图_[Asp.Net教程]

使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图_[Asp.Net教程]

使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图_[Asp.Net教程]

本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。
实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“image/gif”、“image/pjpeg”三种类型。
代码如下:
upfile.aspx文件
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="upfile.aspx.cs" Inherits="upfile_upfile" %>





无标题页






onClick="Button1_Click" Text="上传" />






upfile.aspx.cs文件
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;


public partial class upfile_upfile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }


protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string fileContentType = FileUpload1.PostedFile.ContentType;
if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
{
string name = FileUpload1.PostedFile.FileName; // 客户端文件路径


FileInfo file = new FileInfo(name);
string fileName = file.Name; // 文件名称
string fileName_s = "s_" + file.Name; // 缩略图文件名称
string fileName_sy = "sy_" + file.Name; // 水印图文件名称(文字)
string fileName_syp = "syp_" + file.Name; // 水印图文件名称(图片)
string webFilePath = Server.MapPath("file/" + fileName); // 服务器端文件路径
string webFilePath_s = Server.MapPath("file/" + fileName_s);  // 服务器端缩略图路径
string webFilePath_sy = Server.MapPath("file/" + fileName_sy); // 服务器端带水印图路径(文字)
string webFilePath_syp = Server.MapPath("file/" + fileName_syp); // 服务器端带水印图路径(图片)
string webFilePath_sypf = Server.MapPath("file/shuiyin.jpg"); // 服务器端水印图路径(图片)


if (!File.Exists(webFilePath))
{
try
{
FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件
AddShuiYinWord(webFilePath, webFilePath_sy);
AddShuiYinPic(webFilePath, webFilePath_syp, webFilePath_sypf);
MakeThumbnail(webFilePath, webFilePath_s, 130, 130, "Cut"); // 生成缩略图方法
Label1.Text = "提示:文件“" + fileName + "”成功上传,并生成“" + fileName_s + "”缩略图,文件类型为:" + FileUpload1.PostedFile.ContentType + ",文件大小为:" + FileUpload1.PostedFile.ContentLength + "B";
}
catch (Exception ex)
{
Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
}
}
else
{
Label1.Text = "提示:文件已经存在,请重命名后上传";
}
}
else
{
Label1.Text = "提示:文件类型不符";
}
}
}
/**////


/// 生成缩略图
///

/// 源图路径(物理路径)
/// 缩略图路径(物理路径)
/// 缩略图宽度
/// 缩略图高度
/// 生成缩略图的方式
public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
{
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);


int towidth = width;
int toheight = height;


int x = 0;
int y = 0;
int ow = originalImage.Width;
int oh = originalImage.Height;


switch (mode)
{
case "HW"://指定高宽缩放(可能变形)
break;
case "W"://指定宽,高按比例
toheight = originalImage.Height * width / originalImage.Width;
break;
case "H"://指定高,宽按比例
towidth = originalImage.Width * height / originalImage.Height;
break;
case "Cut"://指定高宽裁减(不变形)
if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
{
oh = originalImage.Height;
ow = originalImage.Height * towidth / toheight;
y = 0;
x = (originalImage.Width - ow) / 2;
}
else
{
ow = originalImage.Width;
oh = originalImage.Width * height / towidth;
x = 0;
y = (originalImage.Height - oh) / 2;
}
break;
default:
break;
}


//新建一个bmp图片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);


//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);


//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;


//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;


//清空画布并以透明背景色填充
g.Clear(System.Drawing.Color.Transparent);


//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
new System.Drawing.Rectangle(x, y, ow, oh),
System.Drawing.GraphicsUnit.Pixel);


try
{
//以jpg格式保存缩略图
bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (System.Exception e)
{
throw e;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}


/**////


/// 在图片上增加文字水印
///

/// 原服务器图片路径
/// 生成的带文字水印的图片路径
protected void AddShuiYinWord(string Path, string Path_sy)
{
string addText = "测试水印";
System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
g.DrawImage(image, 0, 0, image.Width, image.Height);
System.Drawing.Font f = new System.Drawing.Font("Verdana", 16);
System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);


g.DrawString(addText, f, b, 15, 15);
g.Dispose();


image.Save(Path_sy);
image.Dispose();
}


/**////


/// 在图片上生成图片水印
///

/// 原服务器图片路径
/// 生成的带图片水印的图片路径
/// 水印图片路径
protected void AddShuiYinPic(string Path, string Path_syp, string Path_sypf)
{
System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
System.Drawing.Image copyImage = System.Drawing.Image.FromFile(Path_sypf);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
g.DrawImage(copyImage, new System.Drawing.Rectangle(image.Width - copyImage.Width, image.Height - copyImage.Height, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width,copyImage.Height, System.Drawing.GraphicsUnit.Pixel);
g.Dispose();


image.Save(Path_syp);
image.Dispose();
}
}


来源:http://blog.csdn.net/mengyao/archive/2007/02/19/1511774.aspx







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.