asp.net在图片上传的时候怎么给上传的图片在右下角添加图片水印

问题描述

asp.net在图片上传的时候怎么给上传的图片在右下角添加图片水印,希望有具体的的实现步骤和可行的代码实例

解决方案

解决方案二:

解决方案三:
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Drawing;usingSystem.IO;usingSystem.Drawing.Imaging;usingSystem.Web;usingSystem.Drawing.Drawing2D;usingSystem.Reflection;namespaceChen{publicclasswarterPic{///<summary>///给图片上水印///</summary>///<paramname="filepath">原图片地址</param>///<paramname="waterfile">水印图片地址</param>///publicvoidmarkwater(stringfilepath,stringwaterfile){//gif不水印inti=filepath.LastIndexOf(".");stringex=filepath.Substring(i,filepath.Length-i);if(string.Compare(ex,".gif",true)==0){return;}stringmodifyimagepath=filepath;//修改的图像路径intlucencypercent=25;Imagemodifyimage=null;Imagedrawedimage=null;Graphicsg=null;try{//建立图形对象modifyimage=Image.FromFile(modifyimagepath,true);drawedimage=Image.FromFile(waterfile,true);g=Graphics.FromImage(modifyimage);//获取要绘制图形坐标intx=modifyimage.Width-drawedimage.Width;inty=modifyimage.Height-drawedimage.Height;//设置颜色矩阵float[][]matrixitems={newfloat[]{1,0,0,0,0},newfloat[]{0,1,0,0,0},newfloat[]{0,0,1,0,0},newfloat[]{0,0,0,(float)lucencypercent/100f,0},newfloat[]{0,0,0,0,1}};ColorMatrixcolormatrix=newColorMatrix(matrixitems);ImageAttributesimgattr=newImageAttributes();imgattr.SetColorMatrix(colormatrix,ColorMatrixFlag.Default,ColorAdjustType.Bitmap);//绘制阴影图像g.DrawImage(drawedimage,newRectangle(x,y,drawedimage.Width,drawedimage.Height),10,10,drawedimage.Width,drawedimage.Height,GraphicsUnit.Pixel,imgattr);//保存文件string[]allowimagetype={".jpg",".gif",".png",".bmp",".tiff",".wmf",".ico"};FileInfofi=newFileInfo(modifyimagepath);ImageFormatimagetype=ImageFormat.Gif;switch(fi.Extension.ToLower()){case".jpg":imagetype=ImageFormat.Jpeg;break;case".gif":imagetype=ImageFormat.Gif;break;case".png":imagetype=ImageFormat.Png;break;case".bmp":imagetype=ImageFormat.Bmp;break;case".tif":imagetype=ImageFormat.Tiff;break;case".wmf":imagetype=ImageFormat.Wmf;break;case".ico":imagetype=ImageFormat.Icon;break;default:break;}MemoryStreamms=newMemoryStream();modifyimage.Save(ms,imagetype);byte[]imgdata=ms.ToArray();modifyimage.Dispose();drawedimage.Dispose();g.Dispose();FileStreamfs=null;//File.Delete(modifyimagepath);fs=newFileStream(modifyimagepath,FileMode.Create,FileAccess.Write);if(fs!=null){fs.Write(imgdata,0,imgdata.Length);fs.Close();}}finally{try{drawedimage.Dispose();modifyimage.Dispose();g.Dispose();}catch{}}}}}

解决方案四:
网上很多代码ASP.NET:Adding'Watermark'toimagesonthefly
解决方案五:
asp.net图片上传时添加水印图片示例//设置水印文字//<paramname="path">要设置水印图片的路径</param>//<paramname="str">水印文字</param>//<paramname="i">水印文位置</param>publicvoidWaterLetter(stringpath,stringstr,inti)//i表示文字位置0:左上角1:右上角2:左下角3:右下角4:居中{intFwidth;intFheight;//获取文件扩展名stringextension=Path.GetExtension(path).ToUpper();//设置临时文件名称stringfileName=DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString()+DateTime.Now.Day.ToString()+DateTime.Now.Hour.ToString()+DateTime.Now.Minute.ToString()+DateTime.Now.Second.ToString();//加文字水印System.Drawing.Imageimage=System.Drawing.Image.FromFile(path);Graphicsg=Graphics.FromImage(image);g.DrawImage(image,0,0,image.Width,image.Height);Fontf=newFont("Verdana",18);Brushb=newSolidBrush(Color.Red);SizeFXMaxSize=g.MeasureString(str,f);Fwidth=(int)XMaxSize.Width;Fheight=(int)XMaxSize.Height;switch(i){case0://左上角g.DrawString(str,f,b,10,10);break;case1://右上角g.DrawString(str,f,b,(int)(image.Width-Fwidth),10);break;case2://左下角g.DrawString(str,f,b,10,(int)(image.Height-Fheight)-10);break;case3://右下角g.DrawString(str,f,b,(int)(image.Width-Fwidth),(int)(image.Height-Fheight)-10);break;case4://居中g.DrawString(str,f,b,(int)(image.Width-Fwidth)/2,(int)(image.Height-Fheight)/2);break;}//codego.net/15/1/1/g.Dispose();//保存加水印过后的图片,删除原始图片stringnewPath=HttpContext.Current.Server.MapPath(".")+"/File/temp"+fileName+"_new"+extension;image.Save(newPath);image.Dispose();//将水印图片替换为原来图片File.Copy(newPath,path,true);//删除水印if(File.Exists(newPath)){File.Delete(newPath);}}

时间: 2024-10-29 22:47:23

asp.net在图片上传的时候怎么给上传的图片在右下角添加图片水印的相关文章

javascript-在js里动态添加图片是异步加载吗?

问题描述 在js里动态添加图片是异步加载吗? 在js里,如果动态添加图片,即 var img = new Image(); img.src = '......'; //图片地址假设是一组字符串数组里的某项,非ajax异步获取 body.appendChild(img); 假设我绑定了一个鼠标滚动事件,当鼠标滚动时就如上动态加载图片,这种模式是异步加载图片吗? 解决方案 是的,设置src本身是同步的,但是浏览器下载和显示图片是异步的. 解决方案二: 你是事件触发的,肯定是异步获取的,但是你这么写的

gridview、图片-Gridview添加图片问题

问题描述 Gridview添加图片问题 gridview默认第一张图片的路径为空,点击添加图片,在arraylist 0 的位置添加图片地址,1的位置路径为空,可是第二张图片会引用第一张图片的路径,就好像没有刷新一样,求大神帮忙... 解决方案 gridview里面添加图片和文字[Android] 通过GridView仿微信动态添加本地图片 解决方案二: 贴一下我的代码![

上传头像 asp net-上传图片头像,如何才能够在上传之后,能够在注册页面显示出来

问题描述 上传图片头像,如何才能够在上传之后,能够在注册页面显示出来 ASP.NET中个人信息注册的时候,上传图片头像,如何才能够在上传之后,就能够在注册页面显示出来,然后再将其图片路径存入数据库中 下面获取上传的图片的脚本代码 function GetPic() { var RetValue=OpenModalDialog("../TeacherManage/UploadUserPhoto.aspx",700,500); var txtPhoto=document.getElemen

怎样把图片或者flash上传,并且在html上显示出来

问题描述 怎样把图片或者flash上传,并且在html上显示出来,请多多指教,请把代码给我好吗,我真的急用.谢谢了

ThinkPHP示例中心添加图片上传示例

ThinkPHP新添加了3.1版本的图片上传示例. 新版的上传类内部做了一些调整,实例化的参数也有所改变,目的是为了更加明确化. ThinkPHP示例之图片上传,包括图片上传.数据库保存.缩略图生成以及图片水印功能演示.首先需要下载框架核心,然后把示例解压到Web根目录下面,并修改入口文件中的框架入口文件的位置.导入示例目录下面的data.sql文件到你的数据库,或者执行SQL: CREATE&http://www.aliyun.com/zixun/aggregation/37954.html&q

java中ueditor自带的图片上传(单张/多张),怎样将图片上传到静态资源服务器上。

问题描述 java中ueditor自带的图片上传(单张/多张),怎样将图片上传到静态资源服务器上. java的富文本编辑器ueditor,如何是它自带的上传图片功能,将图片上传到自己定义的静态资源服务器上(Linux).而不是上传到项目的根目录下,或者本地. 解决方案 ueditor有个接收上传文件的类,找到它,修改之, 之前使用的时候还有的,不知道你的版本和我的一样不....

asp.net fileupload控件上传文件与多文件上传_实用技巧

1.前台文件 Default.aspx: <%@ Page Language="C#" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.

微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题

微信多图片上传必须挨个上传,也就是不能并行,得串行: 那么我们可以定义一个如下所示的上传函数: var serverIds = []; function uploadImages(localImagesIds) { if (localImagesIds.length === 0) { $.showPreloader('正在提交数据...'); $('form').submit(); } wx.uploadImage({ localId: localImagesIds[0], // 需要上传的图片

如何获取设置图片大小以适应大小在页面上显示

显示|页面 大家知道,丰富多彩的Web页面离不开图片的支持,图像一方面增加了网页的生动性,另一方面增加了网页规模,使下载速度减慢.如何让一图片能以适当大小在页面上显示,成了我一时解不开的谜. 前不久,我为单位开发了一个教学科研网站,采用新闻管理系统,首页上新闻栏目中,需要从数据库中调用图片文件作为图片新闻中的图片,从而形成文字绕排形式.由于整个系统包括新闻上传.新闻编辑.系统公告等都是动态实现的.在开发的过程中,我考虑到以下几个因素:(1)作为网站的维护者,对计算机的操作不太熟练:(2)网站讲究