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); 
        } 

        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(); 
            } 
        } 
    } 
}

时间: 2024-10-28 09:03:22

asp.net缩略图和水印制作:Image Generation的相关文章

使用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

ASP.NET 生成图片缩略图及水印的方法

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

ASP组件AspJpeg(加水印)生成缩略图等使用方法_应用技巧

一.为图片添加水印 复制代码 代码如下: <% Dim Jpeg ''''//声明变量 Set Jpeg = Server.CreateObject("Persits.Jpeg") ''''//调用组件 Jpeg.Open Server.MapPath("aaa.JPG") ''''//源图片位置 Jpeg.Canvas.Font.Color = &H000000 ''''//水印字体颜色 Jpeg.Canvas.Font.Family = "

ASP组件AspJpeg(加水印)生成缩略图等使用方法

一.为图片添加水印 复制代码 代码如下: <% Dim Jpeg ''''//声明变量 Set Jpeg = Server.CreateObject("Persits.Jpeg") ''''//调用组件 Jpeg.Open Server.MapPath("aaa.JPG") ''''//源图片位置 Jpeg.Canvas.Font.Color = &H000000 ''''//水印字体颜色 Jpeg.Canvas.Font.Family = "

asp 生成图片缩略图代码

<% '====================================================== ' 文件名称 : Inc/ClsJpeg.asp ' 文件作用 : 水印+缩略类 ' 最后更新 : 2008.08.02 '====================================================== Dim PhotoObject,Thumb_DefaultWidth,Thumb_DefaultHeight,Thumb_Arithmetic,Th

水印制作

如何制作水印~~10分钟之内让你拥有自己的水印 最近看到很多友友在求水印,于是觉得发个教程,让大家都能做水印也不错啊,毛主*席说过,自己动手,丰衣足食,让我们制作自己的水印吧!! 首先说明一下,我对PS也不是那么精通,所以说得不好请别说我,多鼓励一下嘛,O(∩_∩)O谢谢~ 需要的条件:电脑一台,Photoshop,时间,细心一点 我用的PS CS4E版,用其他版本的机友请具体看一下,应该相差不大 下面是方法: 步骤: ⒈打开PS,如图1: 然后,左键点 文件--->新建, 图2: 新建一个图层

ASP.NET MVC4使用MongoDB制作相册管理_实用技巧

ASP.NET MVC4使用MongoDB制作相册管理实例分享 TIPS:1.Image转成Base64保存到mongodb字段          2.数据模型是嵌套的关联  首先定义Model层:  public class Photo : IEquatable<Photo> { [Required] public string PhotoName { get; set; } [Required] public string PhotoDescription { get; set; } pu

asp生成缩略图代码 [aspjpeg]

 asp生成缩略图   asp 自动生成缩略图   asp.net 生成缩略图   asp代码生成器   aspjpeg是免费的,下一个就能用,现在一般的空间都支持这个组件   无组件的原理和在图片上写width=100 height=100 一样的,只是宽高等比了,体积还是没有压缩,估计无组件做不了这个吧    call compressphoto(photopath,120,90)        '原图路径 缩略图宽 缩略图高    function compressphoto(photop

php生成验证码,缩略图及水印图的类分享_php实例

封装了一个类,可生成验证码,缩略图,及水印图,分享给大家 <?php class image{ session_start(); //验证码类 static public function verify($code,$width=75,$height=25,$n=4){ header("content-type:image/png"); // 创建画布 $img=imagecreatetruecolor($width,$height); // 设置背景色 $bgcolor=ima