莫相离 发表于 2015-1-16 22:24:06

ASP.NET编程:ASP.NET 天生图片缩略图及水印的办法

呵呵,那你就关注微软的招聘信息以及别人的招聘经验啊,还有也不一定去做技术的,你如果真的想去就多了解了解。(其实我的意思是说想到微软做技术是很不容易的。ASP.NETImageGeneration内置了ImageResizeTransform类,能够完成图片巨细调剂功效。也能够扩大ImageTransform完成本人的图片变更类。  上面利用ASP.NETImageGeneration天生图片缩略图及水印的代码。
  数据库
  以下为援用的内容:
CREATETABLEt_images
(
image_idINT,
image_dataIMAGE,
last_modified_date,DATETIME
)
  Default.aspx
  以下为援用的内容:
<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="Default.aspx.cs"Inherits="NET35Lab.GeneratedImage.Web._Default"%>
<%@RegisterAssembly="Microsoft.Web.GeneratedImage"Namespace="Microsoft.Web"TagPrefix="cc1"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title></title>
</head>
<body>
<formid="form1"runat="server">
<div>
<asp:DataListID="DataList1"runat="server"DataSourceID="SqlDataSource1"RepeatColumns="2"
RepeatDirection="Horizontal"CellPadding="4"CellSpacing="4">
<ItemTemplate>
<cc1:GeneratedImageID="GeneratedImage1"runat="server"ImageHandlerUrl="~/ImageHandler1.ashx"
Timestamp=<%#Eval("last_modified_date")%>>
<Parameters>
<cc1:ImageParameterName="imageid"Value=<%#Eval("image_id")%>/>
</Parameters>
</cc1:GeneratedImage>
<br/>
</ItemTemplate>
</asp:DataList>
</div>
<asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="DataSource=.SQLEXPRESS;AttachDbFilename=DataDirectoryDatabase.mdf;IntegratedSecurity=True;UserInstance=True;"
ProviderName="System.Data.SqlClient"SelectCommand="SELECT,,FROM">
</asp:SqlDataSource>
</form>
</body>
</html>
ImageHandler1.ashx
  以下为援用的内容:
<%@WebHandlerLanguage="C#"CodeBehind="ImageHandler1.ashx.cs"Class="NET35Lab.GeneratedImage.Web.ImageHandler1"%>


ImageHandler1.ashx.cs
  以下为援用的内容:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingMicrosoft.Web;
usingSystem.Collections.Specialized;
usingSystem.Data.SqlClient;
usingSystem.Drawing;

namespaceNET35Lab.GeneratedImage.Web
{

publicclassImageHandler1:ImageHandler
{

publicImageHandler1()
{
this.ImageTransforms.Add(newImageResizeTransform{Width=320,Mode=ImageResizeMode.Fit});
this.ImageTransforms.Add(newCopyrightTransform{Text="Guushuuse.NET"});
this.EnableClientCache=true;
this.EnableServerCache=true;

}

publicoverrideImageInfoGenerateImage(NameValueCollectionparameters)
{

intimageID=int.Parse(parameters["imageid"]);

SqlConnectionconnection=newSqlConnection(
@"DataSource=.SQLEXPRESS;AttachDbFilename=DataDirectoryDatabase.mdf;IntegratedSecurity=True;UserInstance=True;");

connection.Open();

SqlCommandcommand=newSqlCommand("selectimage_datafromt_imageswhereimage_id="+imageID,connection);

SqlDataReaderdr=command.ExecuteReader();

dr.Read();

returnnewImageInfo((Byte[])dr);

}
}

publicclassCopyrightTransform:ImageTransform
{
privateconstintVERTICAL_PADDING=5;
privateconstintHORIZONAL_PADDING=5;

publicstringText{get;set;}
publicFontFont{get;set;}
publicColorFontColor{get;set;}

publicCopyrightTransform()
{
//AssignDefaults
FontColor=Color.FromArgb(128,255,0,0);
Font=newFont("Courier",13);
}


publicoverrideSystem.Drawing.ImageProcessImage(System.Drawing.Imageimg)
{
Graphicsgra=Graphics.FromImage(img);
SizeFsz=gra.MeasureString(Text,Font);
gra.DrawString(Text,Font,newSolidBrush(FontColor),img.Width-sz.Width-HORIZONAL_PADDING,img.Height-sz.Height-VERTICAL_PADDING);
returnimg;
}

publicoverridestringUniqueString
{
get
{
returnbase.UniqueString+Text+FontColor.ToString()+Font.ToString();
}
}
}
}
  
因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似java那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。

兰色精灵 发表于 2015-1-17 07:54:16

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。

小女巫 发表于 2015-1-20 15:49:59

能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。

只想知道 发表于 2015-2-6 00:55:56

主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。

admin 发表于 2015-2-14 18:05:47

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。

简单生活 发表于 2015-3-4 09:46:20

主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。

老尸 发表于 2015-3-11 18:11:40

那么,ASP.Net有哪些改进呢?

爱飞 发表于 2015-3-19 06:24:49

HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.

仓酷云 发表于 2015-3-27 09:47:22

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
页: [1]
查看完整版本: ASP.NET编程:ASP.NET 天生图片缩略图及水印的办法