ASP.NET生成缩略图类C#代码
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
namespace ImageProcess
{
/// <summary>
/// ImageThumbnail 的摘要说明
/// </summary>
public class ImageThumbnail
{
public ImageThumbnail()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <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();
}
}
}
}
ASP.NET生成缩略图类C#代码相关推荐
- java生成缩略图类源码
把做工程过程比较好的一些内容备份一下,如下内容段是关于 java生成缩略图类的内容. package com.whatycms.common.util; import java.awt.image.B ...
- Mybatis自动生成实体类等代码
Mybatis自动生成实体类等代码 具体步骤 具体步骤 在本机随便找个目录存放以下文件,如图(mybatis-generator-core-1.3.5.jar 和 mysql-connector-ja ...
- 转载:asp.net生成缩略图通用函数(支持多种生成方式)
文章转载自书生的Blog,原地址是http://www.cnblogs.com/pbwf/archive/2006/03/31/363981.html 感觉十分好用,比较自己写的更全面也更仔细,就放弃 ...
- Asp.net生成缩略图
当我们要上传图片的时候,往往需要生成缩略图,以往我们要使用第三方控件才能完成.在asp.net中用下面方法轻松搞定: <script language="VB" runat= ...
- asp.net生成缩略图、文字图片水印
1 /// <summary> 2 /// 会产生graphics异常的PixelFormat 3 /// </summary> 4 private static PixelF ...
- java 生成缩略图类_JAVA生成【缩略图】方法
/** * 创建缩略图片 * * @param orgpath * @param filename * @return * @description: 描述 */ //此方法对于ssh项目并且针对 上 ...
- php 缩略图增加水印,PHP生成缩略图加图片水印代码
一个PHP图片加水印, 生成缩略图类,觉得注释的挺清楚,与大家分享,如果想为你的PHP程序添加图片水印或者生成缩略图的话,应该是个不错的选择. PHP生成缩略图加图片水印代码<?php // 原 ...
- JDK和cglib生成代理类
关于动态代理和静态代理 当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁–代理对象. 按照代理对象的创建时期不同,可以分为两种: 静态代理: ...
- Simulink代码生成:生成C++类
博主最近在工作中用Simulink生成C++类的代码,因此将一些感悟记录下来.本文通过一个简单的例子研究Simulink生成C++类的代码以及一些相关配置. 文章目录 1 创建模型 2 C++类生成配 ...
最新文章
- 医院电脑瘫痪 病人排长队苦等5小时
- Linux:目录操作
- 活久见的重构 - iOS 10 UserNotifications 框架解析
- 单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半
- 计算机应用专业特色建设情况,【计算机应用论文】计算机应用类专业建设和革新探索(共3022字)...
- SpringBoot基础篇日志管理之logback配置文件
- VS修改生成应用图标
- 程序员的终极幻想(一):像操作数据库那样操作大脑的记忆
- 咖啡html代码,咖啡.html
- 上座部佛教的佛陀略传
- 顽皮的雪狐七七:CSS——清除浮动所有方法总结
- mac mini 用法
- 晶振选型需要注意哪些事项?-台湾TST嘉硕
- 阿里云视频服务之点播服务
- 【不忘初心】Win11_21H2_22000.100_X64_四合一[纯净精简版][2.9G](2021.8.5)
- Android地址选择器的实现
- HDS不玩了,高端存储还能玩多久?
- java中extends和implements的区别
- 极速office(word)怎么添加着重号
- 从左上角到右下角 棋盘问题_分治算法之棋盘问题
热门文章
- 破解世界性技术难题! GTS让分布式事务简单高效
- 阿里GTS解密--GTS的原理、架构与特点
- Java 性能优化之 String 篇
- Spring - Java/J2EE Application Framework 应用框架 第 12 章 Web框架
- 架构师的能力模型(图)
- 数字图像处理:第十五章 图象分割
- Machine Learning week 7 quiz: Unsupervised Learning
- 机器学习:数据预处理之独热编码(One-Hot)
- OAF在打开的新页面中添加按钮,功能是关闭当前页面
- Delphi XE2 之 FireMonkey 入门(13) - 动画(下)