文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>使用ASP.NET Image Generation生成图片缩略图及水印 -

使用ASP.NET Image Generation生成图片缩略图及水印 -

时间:2010-09-04  来源:蔚蓝的大海

下面使用ASP.NET Image Generation生成图片缩略图及水印的代码。

数据库

以下为引用的内容:
CREATE TABLE t_images
(
image_id INT,
image_data IMAGE,
last_modified_date, DATETIME
)

Default.aspx

以下为引用的内容:
<%@ 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
以下为引用的内容:
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);
        }

        public override System.Drawing.Image ProcessImage(System.Drawing.Image img)
        {
            Graphics gra = Graphics.FromImage(img);
            SizeF sz = gra.MeasureString(Text, Font);
            gra.DrawString(Text, Font, new SolidBrush(FontColor), img.Width - sz.Width - HORIZONAL_PADDING, img.Height - sz.Height - VERTICAL_PADDING);
            return img;
        }

        public override string UniqueString
        {
            get
            {
                return base.UniqueString + Text + FontColor.ToString() + Font.ToString();
            }
        }
    }
}

运行效果

点击查看大图


cable news network incremote desktop client mac betawindows vista ultimate pckeystone jack manufacturerssony cpd g400pioneer car audio systemlaptop sata to idecardrecovery 5.20 0212 portablesbp2 compliant ieee 1394 device 5.1 downloadupgrade graphics card pcuniversal dc power adapterrogers channel guidewireless desktop adapterspci express dvi6 ft hdmicat6 24 port patch panelrf products inc.linksys wrt54g wireless router setupairport monitor guardiaps3 hi def cablestandard ide ata atapi controllerssubwoofer parallel wiringlaptops express card 34 slotcircuit city cnetvoip wireless internetsouthern company services incwii wireless nunchuck adaptor600dpi usb scanner driver downloadsata portoffice furniture replacement partsp2 viewer software downloadfree to air hd satellite channelsinstall airport mac prolcd monitor power supplyrj11 connector pinoutbest bluetooth 2008height sound cards out therewoody bamboo flash driveps3 conversion softwarebelkin usb 2.0 multimedia reader writerrepair bioswindows wireless utilityhdmi cable hdtvremove control panel desktopsatellite descramblersgame port interfacesplitter cableunlock sidekick sim cardhp 4100 network cardhome theater system best buy

Replica lv Hangbags

Replica Hangbags

Hangbags

replica handbags

replica handbags

replica handbags

replica handbags

replica handbags

bags

handbags

handbags

replica handbags

replica handbags

replica handbags

usb cable

usb cable

usb cable

usb cable

usb cable

usb flash drives

usb flash drives

usb flash drives

usb flash drives usb flash drives usb flash drives usb flash drives usb flash drives usb flash drives
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载