欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net中生成缩略图并添加版权实例代码】,下面是详细的讲解!
asp.net中生成缩略图并添加版权实例代码
//定义image类的对象
Drawing.Image image,newimage;
//图片路径
protected string imagePath;
//图片类型
protected string imageType;
//图片名称
protected string imageName;
//提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行
//如果此方法确定 GetThumbnailImage 方法应提前停止执行,则返回 true;否则返回 false
System.Drawing.Image.GetThumbnailImageAbort callb=null;
private void sm_Click(object sender, System.EventArgs e)
{
string mPath;
if("" !=File1.PostedFile.FileName) //File1为上传文件控件
{
imagePath=File1.PostedFile.FileName;
//取得图片类型
imageType=imagePath.Substring(imagePath.LastIndexOf(".")+1);
//取得图片名称
imageName=imagePath.Substring(imagePath.LastIndexOf("\\")+1);
//判断是否是JPG或者GIF图片,这里只是举个例子,并不一定必须是这两种图片
if("jpg" !=imageType && "gif" !=imageType)
{
Response.Write("<script language='javascript'> alert('对不起!请您选择jpg或者gif格式的图片!');</script>");
return;
}
else
{
try
{
//建立虚拟路径
mPath=Server.MapPath("UploadFiles");
//保存到虚拟路径
File1.PostedFile.SaveAs(mPath+"\\"+imageName);
//显示原图, imageSource为图片控件
//imageSource.ImageUrl="UploadFiles/"+imageName;
//为上传的图片建立引用
image=System.Drawing.Image.FromFile(mPath+"\\"+imageName);
//生成缩略图
newimage=image.GetThumbnailImage(200,200,callb,new System.IntPtr());
//把缩略图保存到指定的虚拟路径
newimage.Save(Server.MapPath("UploadFiles")+"\\small"+imageName);
//释放image对象占用的资源
image.Dispose();
//释放newimage对象的资源
newimage.Dispose();
//显示缩略图
AddTextToImg ("UploadFiles/"+"small"+imageName,"Pic Info"); // 在图片上加入信息说明
Image1.ImageUrl="UploadFiles/"+"small"+imageName;
Script.Alert("上传成功!");
}
catch
{
Script.Alert("上传失败!");
}
} // end else
}
// 在图片上加入自己的信息,
// AddTextToImg (physicPath,"Pic Info");
private void AddTextToImg(string fileName,string text)
{
//string sss=MapPath(fileName);
if ( !File.Exists ( fileName)) {
throw new FileNotFoundException("The file don't exist!");
}
//还需要判断文件类型是否为图像类型,这里就不赘述了
System.Drawing.Image image=System.Drawing.Image.FromFile(fileName);//MapPath(fileName));
Bitmap bitmap=new Bitmap(image,image.Width,image.Height);
Graphics g=Graphics.FromImage(bitmap);
float fontSize=22.0f; //字体大小
float textWidth=text.Length*fontSize; //文本的长度
//下面定义一个矩形区域,以后在这个矩形里画上白底黑字
float rectX=0;
float rectY=0;
float rectWidth=text.Length*(fontSize+18);
float rectHeight=fontSize+18;
//声明矩形域
RectangleF textArea=new RectangleF(rectX,rectY,rectWidth,rectHeight);
Font font=new Font("宋体",fontSize);//定义字体
Brush whiteBrush=new SolidBrush(Color.White);
Brush blackBrush=new SolidBrush(Color.Black);
g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);
g.DrawString(text,font,whiteBrush,textArea);
MemoryStream ms=new MemoryStream();
//保存为Jpg类型
bitmap.Save(ms,ImageFormat.Jpeg);
//输出处理后的图像,这里为了演示方便,我将图片显示在页面中了
FileStream fs=new FileStream(fileName, FileMode.OpenOrCreate);//.CreateNew);
fs.Write(ms.ToArray(),0,ms.ToArray().Length);
fs.Close();
Image1.ImageUrl=fileName; // 将图片显示在Image控件中
g.Dispose();
bitmap.Dispose();
image.Dispose();
}
关于asp.net中生成缩略图并添加版权实例代码的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
