麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

用C#輕松地在DOTNET中實現縮略圖

2024-07-21 02:19:35
字體:
來源:轉載
供稿:網友
以前,在頁面上實現縮略圖必須借助第三方組件。現在,有了.net,就可以很輕松地實現縮略圖。下面就是實現縮略圖的例子。

關鍵字:c# ,asp.net,縮略圖

實例下載:http://www.lionsky.net/mywebsite/downsoft/list.aspx?id=221

tothumbnailimage.aspx


<%@ page language="c#" codebehind="tothumbnailimage.aspx.cs" src="tothumbnailimage.aspx.cs" autoeventwireup="false" inherits="exam_c.tothumbnailimage" %>
<html>
<head>
<title>lion互動網絡 =>生成縮略圖</title>
</head>
<body>
<form id="form1" method="post" runat="server">
</form>
</body>
</html>



tothumbnailimage.aspx.cs

using system;
using system.collections;
using system.componentmodel;
using system.data;
using system.drawing;
using system.web;
using system.web.sessionstate;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.htmlcontrols;
using system.drawing.imaging;
namespace exam_c
{
/// <summary>
/// tothumbnailimage 的摘要說明。
/// </summary>
public class tothumbnailimage : system.web.ui.page
{
/*
create by lion
2003-05-20 19:00
copyright (c) 2004 www.lionsky.net. all rights reserved.
web: http://www.lionsky.net ;
email: [email protected]
*/


static hashtable htmimes=new hashtable();
internal readonly string allowext = ".jpe|.jpeg|.jpg|.png|.tif|.tiff|.bmp";

#region web 窗體設計器生成的代碼
override protected void oninit(eventargs e)
{
#region htmimes[".jpe"]="image/jpeg";
htmimes[".jpeg"]="image/jpeg";
htmimes[".jpg"]="image/jpeg";
htmimes[".png"]="image/png";
htmimes[".tif"]="image/tiff";
htmimes[".tiff"]="image/tiff";
htmimes[".bmp"]="image/bmp";
#endregion
//調用生成縮略圖方法
tothumbnailimages("lionsky.jpg","b.gif",300);
}
#endregion

#region helper

/// <summary>
/// 獲取圖像編碼解碼器的所有相關信息
/// </summary>
/// <param name="mimetype">包含編碼解碼器的多用途網際郵件擴充協議 (mime) 類型的字符串</param>
/// <returns>返回圖像編碼解碼器的所有相關信息</returns>
static imagecodecinfo getcodecinfo(string mimetype)
{
imagecodecinfo[] codecinfo = imagecodecinfo.getimageencoders();
foreach(imagecodecinfo ici in codecinfo)
{
if(ici.mimetype == mimetype)return ici;
}
return null;
}

/// <summary>
/// 檢測擴展名的有效性
/// </summary>
/// <param name="sext">文件名擴展名</param>
/// <returns>如果擴展名有效,返回true,否則返回false.</returns>
bool checkvalidext(string sext)
{
bool flag=false;
string[] aext = allowext.split('|');
foreach(string filetype in aext)
{
if(filetype.tolower()==sext)
{
flag = true;
break;
}
}
return flag;
}

/// <summary>
/// 保存圖片
/// </summary>
/// <param name="image">image 對象</param>
/// <param name="savepath">保存路徑</param>
/// <param name="ici">指定格式的編解碼參數</param>
void saveimage(system.drawing.image image,string savepath,imagecodecinfo ici)
{
//設置 原圖片 對象的 encoderparameters 對象
encoderparameters parameters = new encoderparameters(1);
parameters.param[0] = new encoderparameter(encoder.quality, ((long) 90));
image.save(savepath, ici, parameters);
parameters.dispose();
}
#endregion

#region methods

/// <summary>
/// 生成縮略圖
/// </summary>
/// <param name="sourceimagepath">原圖片路徑(相對路徑)</param>
/// <param name="thumbnailimagepath">生成的縮略圖路徑,如果為空則保存為原圖片路徑(相對路徑)</param>
/// <param name="thumbnailimagewidth">縮略圖的寬度(高度與按源圖片比例自動生成)</param>
public void tothumbnailimages(string sourceimagepath,string thumbnailimagepath,int thumbnailimagewidth)
{
string sourceimagepath = sourceimagepath;
string thumbnailimagepath = thumbnailimagepath;
int thumbnailimagewidth = thumbnailimagewidth;
string sext = sourceimagepath.substring(sourceimagepath.lastindexof(".")).tolower();
if(sourceimagepath.tostring()==system.string.empty) throw new nullreferenceexception("sourceimagepath is null!");
if(!checkvalidext(sext))
{
throw new argumentexception("原圖片文件格式不正確,支持的格式有[ "+ allowext +" ]","sourceimagepath");
}
//從 原圖片 創建 image 對象
system.drawing.image image = system.drawing.image.fromfile(httpcontext.current.server.mappath(sourceimagepath));
int num = ((thumbnailimagewidth / 4) * 3);
int width = image.width;
int height = image.height;
//計算圖片的比例
if ((((double) width) / ((double) height)) >= 1.3333333333333333f)
{
num = ((height * thumbnailimagewidth) / width);
}
else
{
thumbnailimagewidth = ((width * num) / height);
}
if ((thumbnailimagewidth < 1) || (num < 1))
{
return;
}
//用指定的大小和格式初始化 bitmap 類的新實例
bitmap bitmap = new bitmap(thumbnailimagewidth, num, pixelformat.format32bppargb);
//從指定的 image 對象創建新 graphics 對象
graphics graphics = graphics.fromimage(bitmap);
//清除整個繪圖面并以透明背景色填充
graphics.clear(color.transparent);
//在指定位置并且按指定大小繪制 原圖片 對象
graphics.drawimage(image, new rectangle(0, 0, thumbnailimagewidth, num));
image.dispose();
try
{
//將此 原圖片 以指定格式并用指定的編解碼參數保存到指定文件
string savepath = (thumbnailimagepath==null?sourceimagepath:thumbnailimagepath);
saveimage(bitmap,httpcontext.current.server.mappath(savepath),getcodecinfo((string)htmimes[sext]));
}
catch(system.exception e)
{
throw e;
}
finally
{
bitmap.dispose();
graphics.dispose();
}
}
#endregion

}
}
中國最大的web開發資源網站及技術社區,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人国产在线看 | 精品久久久久久久久久久久包黑料 | 国产一区二区三区四区五区加勒比 | 亚洲影院在线播放 | 国产毛片在线看 | 成人一级在线 | 欧美亚洲一区二区三区四区 | 国产日韩大片 | 99精品国产小情侣高潮露脸在线 | 在线看一级片 | 深夜免费福利视频 | 91美女福利视频 | 黄色大片在线免费看 | 高清在线观看av | 久草干 | 草莓视频在线导航 | 黄色免费大片 | 久久一区二区三区av | 黄色毛片视频在线观看 | 大学生一级毛片 | 深夜网站在线观看 | 欧美三级欧美成人高清www | 国内久久久久 | 午夜久久久精品一区二区三区 | 特级无码毛片免费视频尤物 | 亚洲午夜电影 | 久久成人国产精品入口 | 欧美精品1区 | 国产一区二区三区黄 | 一级黄色淫片 | 欧美精品一区二区三区在线 | 午夜视频国产 | 一级做a爱片性色毛片 | 毛片网站视频 | 国产毛片视频 | 国产午夜精品久久久久久免费视 | 在线 日本 制服 中文 欧美 | 久久午夜国产 | 欧美精品免费一区二区三区 | 欧美一级片在线 | 中国嫩模一级毛片 |