coverhandler.cs

来自「一个网上书店的源码」· CS 代码 · 共 60 行

CS
60
字号
using System;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

/// <summary>
/// handler 的摘要说明
/// </summary>
public class CoverHandler : IHttpHandler
{
    public CoverHandler()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //

    }
    public void ProcessRequest(HttpContext context)
    {

        string path = context.Request.MapPath("~/Images/BookCovers/" + context.Request.Params["ISBN"].ToString());

        if (!File.Exists(path + "_new.jpg"))
        {
            MakeNewImage(path, context.Request.MapPath("~/Images/watermark.jpg"), context.Request.MapPath("~/Images/watermark.jpg"));
        }
        context.Response.ContentType = "image/jpeg";
        context.Response.WriteFile(path + "_new.jpg");
    }

    public void MakeNewImage(string road, string watermarkroad, string defaultimage)
    {
        System.Drawing.Image image;
        if (!File.Exists(road + ".jpg"))
        {
            image = System.Drawing.Image.FromFile(defaultimage);
        }
        else
        {
            image = System.Drawing.Image.FromFile(road + ".jpg");
        }
        System.Drawing.Image watermark = System.Drawing.Image.FromFile(watermarkroad);
        Graphics g = Graphics.FromImage(image);
        g.DrawImage(watermark, new Rectangle(image.Width - watermark.Width, image.Height - watermark.Height, watermark.Width, watermark.Height), 0, 0, watermark.Width, watermark.Height, GraphicsUnit.Pixel);
        g.Dispose();
        watermark.Dispose();
        string newPath = road + "_new.jpg";
        image.Save(newPath);
        image.Dispose();
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?