仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 992|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET编程:ASP.NET 天生图片缩略图及水印的办法

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:24:06 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
呵呵,那你就关注微软的招聘信息以及别人的招聘经验啊,还有也不一定去做技术的,你如果真的想去就多了解了解。(其实我的意思是说想到微软做技术是很不容易的。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[image_id],[image_data],[last_modified_date]FROM[t_images]">
</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[0]);

}
}

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那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-23 06:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表