C# 缩略图算法
代码写多了,有些使用过的方法和技巧会一时半会想不起来,平日记录下来,方便自己和有需要的人日后查阅。
using (var stream = new FileStream(physicalPath, FileMode.Open, FileAccess.Read))
{
Bitmap target = null;
int targetWidth, targetHeight;
try
{
using (var bitmap = new Bitmap(stream))
{
var size = bitmap.PhysicalDimension;
if (size.Width > size.Height)
{
if (size.Width > _maximumWidth)
{
targetWidth = _maximumWidth;
targetHeight = (int)size.Height * _maximumWidth / (int)size.Width;
}
else
{
targetWidth = (int)size.Width;
targetHeight = (int)size.Height;
} if (targetHeight >= _maximumHeight)
{
targetWidth = targetWidth * _maximumHeight / targetHeight;
targetHeight = _maximumHeight;
}
}
else
{
if (size.Height > _maximumHeight)
{
targetHeight = _maximumHeight;
targetWidth = (int)size.Width * _maximumHeight / (int)size.Height;
}
else
{
targetHeight = (int)size.Height;
targetWidth = (int)size.Width;
} if (targetWidth >= _maximumWidth)
{
targetHeight = targetHeight * _maximumWidth / targetWidth;
targetWidth = _maximumWidth;
}
} SizeF targetSize = SizeF.Empty; targetSize = new SizeF(targetWidth, targetHeight); target = new Bitmap(targetWidth, targetHeight);
using (var graphics = Graphics.FromImage(target))
{
graphics.CompositingQuality = compositingQuality;
graphics.InterpolationMode = interpolationMode;
graphics.CompositingMode = CompositingMode.SourceCopy; graphics.DrawImage(bitmap, , , targetSize.Width, targetSize.Height);
}
} context.Response.ContentType = "image/jpg";
using (MemoryStream memoryStream = new MemoryStream())
{
target.Save(memoryStream, ImageFormat.Jpeg);
memoryStream.WriteTo(context.Response.OutputStream);
}
}
finally
{
if (target != null)
{
target.Dispose();
}
}
}
C# 缩略图算法的更多相关文章
- ImageUtils
JavaSE package com.easystructure.utils.system; import java.awt.Color; import java.awt.Font; import j ...
- SW数据库结构列表
数据表列表 PE_Admin:管理员信息表 PE_Advertisement:广告信息表 PE_AdZone:版位信息表 PE_Announce:公告信息表 PE_AreaCollection:采集信 ...
- PHP-生成缩略图和添加水印图-学习笔记
1.开始 在网站上传图片过程,经常用到缩略图功能.这里我自己写了一个图片处理的Image类,能生成缩略图,并且可以添加水印图. 2.如何生成缩略图 生成缩略图,关键的是如何计算缩放比率. 这里,我根据 ...
- Asp.Net 上传图片并生成高清晰缩略图
在asp.net中,上传图片功能或者是常用的,生成缩略图也是常用的.baidu或者google,c#的方法也是很多的,但是一用却发现缩略图不清晰啊,缩略图片太大之类的事情,下面是我在处理图片上的代码, ...
- java生成生成图片缩略图
/** * */ package com.fkhwl.fkhserver.core.utils; import java.awt.Image; import java.awt.image.Buffer ...
- android 视频的缩略图 缓存机制和 异步加载缩略图
在这次的工作开发项目中,涉及到一个视频缩略图的视频列表:这个在大家看来,制作视频缩略图就是两行代码就搞定的事.确实是这样的,百度一下,每个帖子都知道制作视频缩略图的方法,在这里确实也是一样的,但是我要 ...
- Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图
现在的web项目,图片越来越多,图片大小也越来越大,随便就能达到1M,2M,甚至更大.用户上传的图片,一般是无法直接使用的.一般要生成两三种对应的缩略图,分别适配不同的终端,不同的场景.比如PC,手机 ...
- 黄聪:C#图片处理封装类(裁剪、缩放、清晰度、加水印、生成缩略图)有示例(转)
C#图片处理示例(裁剪,缩放,清晰度,水印) 吴剑 2011-02-20 原创文章,转载必需注明出处:http://www.cnblogs.com/wu-jian/ 前言 需求源自项目中的一些应用,比 ...
- Asp.Net 上传图片并生成高清晰缩略图(转)
在asp.net中,上传图片功能或者是常用的,生成缩略图也是常用的.baidu或者google,c#的方法也是很多的,但是一用却发现缩略图不清晰啊,缩略图片太大之类的事情,下面是我在处理图片上的代码, ...
随机推荐
- -_-#【Backbone】View
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- -_-#【Better Code】字符串匹配
提高 web 应用性能之 JavaScript 性能调优
- -_-#【乱码】URL中文参数
JavaScript利用URL向后台传入中文参数乱码问题解决之道! encodeURIComponent(encodeURIComponent('ya呀')) http://wap.baomihua. ...
- java容器类总结
1.java容器分类图 说明:左图为简化图(其中粗线部分是重点的容器),右图为完整容器分类图 2.容器类接口和抽象容器类 2.1 说明 容器接口是容器 ...
- 黑马程序员_Java基础常识
一.基础常识 1,软件开发 1)什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 常见的软件 系统软件 如:DOS,windows,Linux等. 应用软件: 如:扫雷,迅雷,QQ等 ...
- Spring JDBC 随笔
Spring 框架,借助 JdbcTemplate 类来简化 java 访问 database. 完成一个增查改删(CRUD)的基本功能,借助下面 5 个角色来共同来完成. 1. object cla ...
- 《Linear Algebra and Its Application》-chaper1-行化简法解决线性方程组
在实际生产生活中,需要我们解大量的线性方程组,例如是有探测.线性规划.电路等,这里我们便从理论角度建立一套解决线性方程组的体系. 线性方程组: 形如下面形式的方程组称为线性方程组. 回想起解决二元线性 ...
- Android 出现警告Exported service does not require permission
在配置Android清单文件的时候,配置service,或者activity,或者receive的时候,出现Exported service does not require permission警告 ...
- Unix C++(boost) 线程同步和线程组
#include <boost/thread.hpp> #include <iostream> #include <vector> #include <cst ...
- jQuery UI Widget(1.8.1)工作原理--转载
先看下代码的相关注释: /*! * jQuery UI Widget 1.8.1 * * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/abo ...