欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

asp.net生成縮略圖實現(xiàn)代碼

 更新時間:2011年11月23日 20:59:13   作者:  
此文件imgSmall.ashx專門用來生成圖片的縮略圖,可以減少服務器壓力,降低網(wǎng)絡流量,初學者必備
復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.IO;
namespace web三層
{
/// <summary>
/// 顯示請求圖片的縮略圖,以寬度100像素為最大單位
/// </summary>
public class imgSmall : IHttpHandler
{
//圖片所在文件夾
static string picturesPath = @"d:\wordpictures\";
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/jpeg";
//獲取到傳遞過來的img字符串,比如
//http://localhost:5002/imgSmall.ashx?img=abacus8.jpg這種
string img = context.Request.Params["img"];
string path = picturesPath + img;
//如果文件存在才會去讀取,減少使用try,catch,提高程序性能
if (File.Exists(path))
{
//載入這個圖片
Image big = Image.FromFile(path);
//如果可以獲取到文件,才會執(zhí)行下面的代碼
if (big != null)
{
//設定最大的寬度,可以修改來生成更小的縮略圖
int newWidth = 100;
//根據(jù)圖片的寬高比來生成一個位圖
Bitmap bitmap = new Bitmap(newWidth, newWidth * big.Height / big.Width);
//根據(jù)圖板來創(chuàng)建一個圖畫
Graphics g = Graphics.FromImage(bitmap);
using (g)
{
//將大圖big畫到自己定義的小圖中bitmap
g.DrawImage(big, 0, 0, bitmap.Width, bitmap.Height);
//直接將處理好的位圖保存到響應輸出流中,格式為jpeg!
bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
else
{
//否則就發(fā)送一個文件不存在的信息到瀏覽器
context.Response.ContentType = "text/html";
context.Response.Write("文件不存在");
//或者發(fā)送一個文件不存在的圖片
//context.Response.WriteFile("todo此處修改為圖片所在路徑");
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}

這是一個一般處理程序,只需要給其發(fā)送一個文件名稱的參數(shù)就可以在瀏覽器上顯示出圖片(可以修改成發(fā)送一個圖片的序號id),比如下面的GridView控件中使用了此處理程序image

 

縮略圖字段中將其DataImageUrlField設置為文件名,這個字段是數(shù)據(jù)庫中一個字段(初學的時候我喜歡用中文字段,比較好理解),再將其DataImageUrlFormatString設置為:imgSmall.ashx?img={0},這樣在生成html代碼的時候就會把{0}替換成文件名這個字段的內(nèi)容,實際的效果如下圖:

image

縮略圖非常的小,才3040字節(jié),看官也可以發(fā)現(xiàn)當瀏覽器請求圖片時,請求的地址是imgSmall.ashx?img=abacus8.jpg

相關文章

  • ASP.NET筆記之CKEditor的使用方法

    ASP.NET筆記之CKEditor的使用方法

    本篇文章小編為大家介紹,ASP.NET筆記之CKEditor的使用方法。需要的朋友參考下
    2013-04-04
  • asp.net頁面中時間格式化的示例

    asp.net頁面中時間格式化的示例

    這篇文章主要介紹了asp.net頁面中時間格式化的示例,需要的朋友可以參考下
    2014-04-04
  • DAM 簡單跨數(shù)據(jù)庫ADO.NET組件

    DAM 簡單跨數(shù)據(jù)庫ADO.NET組件

    這是一個可以實現(xiàn)簡單跨數(shù)據(jù)庫基于ADO.NET的組件。您可以在DAL層透過它來訪問數(shù)據(jù)庫。這是一個以前寫過一個小組件的修改版.
    2011-01-01
  • 禁用aspx頁面的客戶端緩存(防止頁面被修改)

    禁用aspx頁面的客戶端緩存(防止頁面被修改)

    默認情況下,IE打開一個網(wǎng)頁,會在本地進行緩存,在某些時候也會帶來了弊端,比如修改信息的頁面等等因為URL并沒有改變,所以IE會讀取本地緩存,這種情況特別容易出現(xiàn)在彈出對話框或窗口進行修改的方式感興趣的朋友可以了解下,或許對你有所幫助
    2013-02-02
  • 詳解WebApiClient的JsonPatch局部更新

    詳解WebApiClient的JsonPatch局部更新

    這篇文章主要介紹了詳解WebApiClient的JsonPatch局部更新,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 如何利用FluentMigrator實現(xiàn)數(shù)據(jù)庫遷移

    如何利用FluentMigrator實現(xiàn)數(shù)據(jù)庫遷移

    這篇文章主要給大家介紹了關于如何利用FluentMigrator實現(xiàn)數(shù)據(jù)庫遷移的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • .net core項目中常用的幾款類庫詳解(值得收藏)

    .net core項目中常用的幾款類庫詳解(值得收藏)

    這篇文章主要給大家介紹了關于.net core項目中常用的幾款類庫的相關資料,文章通過示例代碼介紹的非常詳細,對大家學習或者使用.net core具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-04-04
  • 基于?.NET?6?的ASP.NET?Core啟動地址配置方法及優(yōu)先級順序

    基于?.NET?6?的ASP.NET?Core啟動地址配置方法及優(yōu)先級順序

    這篇文章主要介紹了ASP.NET?Core啟動地址配置方法及優(yōu)先級順序,?.NET?6?使用了最小?WEB?API,?配置方式已經(jīng)部分發(fā)生了變化,下面文章我們來看看具體的方法,需要的小伙伴可以參考一下
    2022-03-03
  • 在IIS上部署ASP.NET Core Web API的方法步驟

    在IIS上部署ASP.NET Core Web API的方法步驟

    這篇文章主要介紹了在IIS上部署ASP.NET Core Web API的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • ASP.NET頁面優(yōu)化 性能提升8倍的方法

    ASP.NET頁面優(yōu)化 性能提升8倍的方法

    今天與大家分享:一種優(yōu)化頁面執(zhí)行速度的方法。采用這個方法,可以使用頁面的執(zhí)行速度獲得【8倍】的提升效果
    2012-03-03

最新評論