详细内容
asp.net缩略图和水印制作的方法
发布日期:2010-09-20     点击:3014     字体:[ ]

asp.net中也可编写水印效果,使用ASP.NET Image Generation生成图片缩略图,以及水印。asp.net Image Generation内置了ImageResizeTransform类,可以实现图片大小调整功能。
也可以扩展ImageTransform实现自己的图片变换类。 
下面使用ASP.NET Image Generation生成图片缩略图及水印的代码: 

数据库 
CREATE TABLE t_images 

image_id INT, 
image_data IMAGE, 
last_modified_date, DATETIME 

  
Default.aspx 

Code 
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="NET35Lab.GeneratedImage.Web._Default" %> 

<%@ Register Assembly="Microsoft.Web.GeneratedImage" Namespace="Microsoft.Web" TagPRefix="cc1" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
        <asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatColumns="2" 
            RepeatDirection="Horizontal" CellPadding="4" CellSpacing="4"> 
            <ItemTemplate> 
                <cc1:GeneratedImage ID="GeneratedImage1" runat="server" ImageHandlerUrl="~/ImageHandler1.ashx" 
                    Timestamp=’<%# Eval("last_modified_date") %>’> 
                    <Parameters> 
                        <cc1:ImageParameter Name="imageid" Value=’<%# Eval("image_id") %>’ /> 
                    </Parameters> 
                </cc1:GeneratedImage> 
                <br /> 
            </ItemTemplate> 
        </asp:DataList> 
    </div> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True;" 
        ProviderName="System.Data.SqlClient" SelectCommand="SELECT [image_id], [image_data], [last_modified_date] FROM [t_images]"> 
    </asp:SqlDataSource> 
    </form> 
</body> 
</html> 

ImageHandler1.ashx 

<%@ WebHandler Language="C#" CodeBehind="ImageHandler1.ashx.cs" Class="NET35Lab.GeneratedImage.Web.ImageHandler1" %> 

ImageHandler1.ashx.cs 

Code 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Microsoft.Web; 
using System.Collections.Specialized; 
using System.Data.SqlClient; 
using System.Drawing; 

namespace NET35Lab.GeneratedImage.Web 

    public class ImageHandler1 : ImageHandler 
    { 

        public ImageHandler1() 
        { 
            this.ImageTransforms.Add(new ImageResizeTransform { Width = 320, Mode = ImageResizeMode.Fit }); 
            this.ImageTransforms.Add(new CopyrightTransform { Text = "Guushuuse .NET" }); 
            this.EnableClientCache = true; 
            this.EnableServerCache = true; 

        } 

        public override ImageInfo GenerateImage(NameValueCollection parameters) 
        { 

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

            SqlConnection connection = new SqlConnection( 
                @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True;"); 

            connection.Open(); 

            SqlCommand command = new SqlCommand("select image_data from t_images where image_id=" + imageID, connection); 

            SqlDataReader dr = command.ExecuteReader(); 

            dr.Read(); 

            return new ImageInfo((Byte[])dr[0]); 

        } 
    } 

    public class CopyrightTransform : ImageTransform 
    { 
        private const int VERTICAL_PADDING = 5; 
        private const int HORIZONAL_PADDING = 5; 

        public string Text { get; set; } 
        public Font Font { get; set; } 
        public Color FontColor { get; set; } 

        public CopyrightTransform() 
        { 
            //Assign Defaults 
            FontColor = Color.FromArgb(128, 255, 0, 0); 
            Font = new Font("Courier", 13); 
     &nb

用户评论
昵称:匿名 来自:61.235.142.*  
2011/1/11 9:22:09
<cc1:ImageParameter > 控件你咋定义的
昵称 
内容  *
验证码   
   
Copyright © 2010 zdbase.com All Rights Reserved. 苏ICP备15039389号 可人软件设计