zoukankan
html css js c++ java
asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
///
<summary>
///
生成缩略图
///
</summary>
///
<param name="originalImagePath">
源图路径(物理路径)
</param>
///
<param name="thumbnailPath">
缩略图路径(物理路径)
</param>
///
<param name="width">
缩略图宽度
</param>
///
<param name="height">
缩略图高度
</param>
///
<param name="mode">
生成缩略图的方式
</param>
public
static
void
MakeThumbnail(
string
originalImagePath,
string
thumbnailPath,
int
width,
int
height,
string
mode)
{
Image originalImage
=
Image.FromFile(originalImagePath);
int
towidth
=
width;
int
toheight
=
height;
int
x
=
0
;
int
y
=
0
;
int
ow
=
originalImage.Width;
int
oh
=
originalImage.Height;
switch
(mode)
{
case
"
HW
"
:
//
指定高宽缩放(可能变形)
break
;
case
"
W
"
:
//
指定宽,高按比例
toheight
=
originalImage.Height
*
width
/
originalImage.Width;
break
;
case
"
H
"
:
//
指定高,宽按比例
towidth
=
originalImage.Width
*
height
/
originalImage.Height;
break
;
case
"
Cut
"
:
//
指定高宽裁减(不变形)
if
((
double
)originalImage.Width
/
(
double
)originalImage.Height
>
(
double
)towidth
/
(
double
)toheight)
{
oh
=
originalImage.Height;
ow
=
originalImage.Height
*
towidth
/
toheight;
y
=
0
;
x
=
(originalImage.Width
-
ow)
/
2
;
}
else
{
ow
=
originalImage.Width;
oh
=
originalImage.Width
*
height
/
towidth;
x
=
0
;
y
=
(originalImage.Height
-
oh)
/
2
;
}
break
;
default
:
break
;
}
//
新建一个bmp图片
Image bitmap
=
new
System.Drawing.Bitmap(towidth,toheight);
//
新建一个画板
Graphics g
=
System.Drawing.Graphics.FromImage(bitmap);
//
设置高质量插值法
g.InterpolationMode
=
System.Drawing.Drawing2D.InterpolationMode.High;
//
设置高质量,低速度呈现平滑程度
g.SmoothingMode
=
System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//
清空画布并以透明背景色填充
g.Clear(Color.Transparent);
//
在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage,
new
Rectangle(
0
,
0
, towidth, toheight),
new
Rectangle(x, y, ow,oh),
GraphicsUnit.Pixel);
try
{
//
以jpg格式保存缩略图
bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch
(System.Exception e)
{
throw
e;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}
查看全文
相关阅读:
在IIS上发布Web(使用VS2005)
ASP.NET Web Service应用发布到IIs怎么做
(转)在 Visual Studio 2010 中创建 ASP.Net Web Service
matlab函数之diag
Coursera《machine learning》--(6)逻辑回归
UFLDL教程(五)之self-taught learning
UFLDL教程之(三)PCA and Whitening exercise
matlab的常用快捷键
matlab函数之bsxfun
Coursera《machine learning》--(14)数据降维
原文地址:https://www.cnblogs.com/yangbin1005/p/1260237.html
最新文章
如何清除swap里的文件
javascript拾掇
网站版权日期的处理
glottal stop coach shane 笔记
好的翻译资料
不规则复数
英语回文
1. 谁是照片picture VS photograph?
词根er背后的大文章
copula 与一般动词的区别
热门文章
Pronunciation Changes in Words that are Both Nouns and Verbs
英式英语 美式英语
software architecture slide 3
第一个Python程序的Hello Python,竟然有问题
Eclipse上运行Python,使用PyDev
Eclipse设置的断点失效的解决办法
(转)JAVA 调用Web Service的三种方法
Java调用IIS发布的WebService
IIS总提示输入用户名和密码
在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)
Copyright © 2011-2022 走看看