生成图片缩略图方法

private void DrawImageRectRect(string rawImgPath, string newImgPath, int width, int height)

{

System.Drawing.Image imageFrom = System.Drawing.Image.FromFile(rawImgPath);

// 源图宽度及高度

int imageFromWidth = imageFrom.Width;

int imageFromHeight = imageFrom.Height;

//在原画布中的位置

int X, Y;

//在原画布中取得的长宽

int bitmapWidth, bitmapHeight;

//// 根据源图及欲生成的缩略图尺寸,计算缩略图的实际尺寸及其在"画布"上的位置

if (imageFromWidth / width > imageFromHeight / height)

{

bitmapWidth = (width * imageFromHeight) / height;

bitmapHeight = imageFromHeight;

X = (imageFromWidth - bitmapWidth) / 2;

Y = 0;

}

else

{

bitmapWidth = imageFromWidth;

bitmapHeight = (height * imageFromWidth) / width;

X = 0;

Y = (imageFromHeight - bitmapHeight) / 2;

}

// 创建画布

Bitmap bmp = new Bitmap(width, height);

Graphics g = Graphics.FromImage(bmp);

// 用白色清空

g.Clear(Color.White);

// 指定高质量的双三次插值法。执行预筛选以确保高质量的收缩。此模式可产生质量最高的转换图像。

g.InterpolationMode = InterpolationMode.HighQualityBicubic;

// 指定高质量、低速度呈现。

g.SmoothingMode = SmoothingMode.HighQuality;

// 在指定位置并且按指定大小绘制指定的 Image 的指定部分。

g.DrawImage(imageFrom, new Rectangle(0, 0, width, height), new Rectangle(X, Y, bitmapWidth, bitmapHeight), GraphicsUnit.Pixel);

try

{

//经测试 .jpg 格式缩略图大小与质量等最优

bmp.Save(newImgPath, ImageFormat.Jpeg);

}

catch

{

}

finally

{

//显示释放资源

imageFrom.Dispose();

bmp.Dispose();

g.Dispose();

}

}

来源:http://www.cnblogs.com/tonymu/archive/2011/07/29/2121131.html;

时间: 2024-10-06 05:35:11

生成图片缩略图方法的相关文章

iOS获取本地视频和网络URL视频的缩略图方法

iOS获取本地视频和网络URL视频的缩略图方法 字数222 阅读612 评论0 喜欢13 首先大家先添加AVFoundation和CoreMedia.framework两个框架 第一种本地视频获取缩略图 NSString *path = @"www.51ios.net/本地路径" MPMoviePlayerController *51iosMPMovie = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileU

DEDE列表页调用文章内容第一张图片(非缩略图)方法

打开 ../ include/ common.func.php添加代码 //将缩放图转变为文章第一张图片 function firstimg($str_pic) { $str_sub=substr($str_pic,0,-7).".jpg";//删除缩略图字符串最后七位,然后再补上后缀.jpg return $str_sub; } 调用的方法是: [field:litpic function='firstimg(@me)'/] DEDE列表页调用文章内容第一张图片(非缩略图)方法,布布

PHP 生成图片缩略图函数

各位小盆友使用前记得打开 GD 库的支持哦,附上代码. <?php /** * 生成缩略图函数(支持图片格式:gif.jpeg.png和bmp) * @author ruxing.li * @param string $src 源图片路径 * @param int $width 缩略图宽度(只指定高度时进行等比缩放) * @param int $width 缩略图高度(只指定宽度时进行等比缩放) * @param string $filename 保存路径(不指定时直接输出到浏览器) * @re

【dedecms】DEDE列表页调用文章内容第一张图片(非缩略图)方法

打开 ../ include/ common.func.php添加代码 //将缩放图转变为文章第一张图片 function firstimg($str_pic) { $str_sub=substr($str_pic,0,-7).".jpg";//删除缩略图字符串最后七位,然后再补上后缀.jpg return $str_sub; } //调用的方法是: [field:litpic function='firstimg(@me)'/] [dedecms]DEDE列表页调用文章内容第一张图片

[转].net 缩略图方法

本文转自:http://www.cnblogs.com/promic/archive/2010/04/21/1717190.html private static string strConnect = System.Configuration.ConfigurationManager.AppSettings["connStr"]; //上传图像 protected void btnUpload_Click(object sender, EventArgs e) { -- string

JAVA生成图片缩略图、JAVA截取图片局部内容

package com.ares.image.test; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Arrays; import javax.imageio.ImageIO; import o

php生成图片缩略图的类方法

//php生成缩略图片的类 class ResizeImage{ public $type;//图片类型 public $width;//实际宽度 public $height;//实际高度 public $resize_width;//改变后的宽度 public $resize_height;//改变后的高度 public $cut;//是否裁图 public $srcimg;//源图象 public $dstimg;//目标图象地址 public $im;//临时创建的图象 public $

C# 生成图片缩略图

最近项目有部分需求,是关于图片操作部分的, 大致的功能就是图片的保存和展示.但是直接操作原图,程序运行效率太慢.而且如果传输数据量过大的话,可能直接导致调用WCF服务失败的问题. 为了解决这个问题,决定采用缩略图的方法.保存数据的时候保存原图和其缩略图.但主界面展示的时候只加载缩略图,点击缩略图后再显示其原图.这样就避免了一进入主界面就加载大量数据,提高了效率. 那么问题就来了,怎么将原图进行处理变成缩略图呢? 下面提供了一个图片处理的类,用来生成缩略图.对GetReducedImage函数进行

ThinkPHP5 动态生成图片缩略图

需求场景 不同终端(PC端.手机端.平板),不同界面(列表页.详情页),对图片大小的要求不一样, 如果所有场景下都使用同一尺寸的图片,势必对会网络带宽及服务器性能造成一定的影响,由此需要服务器端能够根据前端的请求参数,自动匹配出相对应的图片资源,以此来降低服务端的压力,同时也能给用户带来更友好的用户体验. 具体步骤如下: 1.开启apache的rewrite功能,具体方法请自行百度. 2.修改.htaccess 以上配置规则表示,如果存在对应的图片资源,则由apache直接返回,如果不存在,则转