asp.net(C#)压缩图片,可以指定图片模板高宽_实用技巧

复制代码 代码如下:

//生成缩略图函数
//顺序参数:源图文件流、缩略图存放地址、模版宽、模版高
//注:缩略图大小控制在模版区域内
public static void MakeSmallImg(System.IO.Stream fromFileStream, string fileSaveUrl, System.Double templateWidth, System.Double templateHeight)
{
//从文件取得图片对象,并使用流中嵌入的颜色管理信息
System.Drawing.Image myImage = System.Drawing.Image.FromStream(fromFileStream, true);
//缩略图宽、高
System.Double newWidth = myImage.Width, newHeight = myImage.Height;
//宽大于模版的横图
if (myImage.Width > myImage.Height || myImage.Width == myImage.Height)
{
if (myImage.Width > templateWidth)
{
//宽按模版,高按比例缩放
newWidth = templateWidth;
newHeight = myImage.Height * (newWidth / myImage.Width);
}
}
//高大于模版的竖图
else
{
if (myImage.Height > templateHeight)
{
//高按模版,宽按比例缩放
newHeight = templateHeight;
newWidth = myImage.Width * (newHeight / myImage.Height);
}
}
//取得图片大小
System.Drawing.Size mySize = new Size((int)newWidth, (int)newHeight);
//新建一个bmp图片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(mySize.Width, mySize.Height);
//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空一下画布
g.Clear(Color.White);
//在指定位置画图
g.DrawImage(myImage, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height),
new System.Drawing.Rectangle(0, 0, myImage.Width, myImage.Height),
System.Drawing.GraphicsUnit.Pixel);
///文字水印
//System.Drawing.Graphics G=System.Drawing.Graphics.FromImage(bitmap);
//System.Drawing.Font f=new Font("宋体",10);
//System.Drawing.Brush b=new SolidBrush(Color.Black);
//G.DrawString("myohmine",f,b,10,10);
//G.Dispose();
///图片水印
//System.Drawing.Image copyImage = System.Drawing.Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("pic/1.gif"));
//Graphics a = Graphics.FromImage(bitmap);
//a.DrawImage(copyImage, new Rectangle(bitmap.Width-copyImage.Width,bitmap.Height-copyImage.Height,copyImage.Width, copyImage.Height),0,0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
//copyImage.Dispose();
//a.Dispose();
//copyImage.Dispose();
//保存缩略图
bitmap.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg);
g.Dispose();
myImage.Dispose();
bitmap.Dispose();
}

复制代码 代码如下:

private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Title = "选择图片文件";
// fileDialog.Filter = "excel files (*.xls)|*.xls";
fileDialog.FilterIndex = 1;
if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{

System.IO.FileStream file =System.IO.File.Open(fileDialog.FileName,System.IO.FileMode.Open);
System.IO.Stream strea = file;
file.Close();
MakeSmallImg(strea, "缩略图.jpg", 150, 150);
// file.Close();

}
}

时间: 2024-09-13 22:21:53

asp.net(C#)压缩图片,可以指定图片模板高宽_实用技巧的相关文章

asp.net上传图片并作处理水印与缩略图的实例代码_实用技巧

方法类: 复制代码 代码如下: upFileClass.cs using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlC

ASP.NET实现图片以二进制的形式存入数据库_实用技巧

本文以实例形式讲述了ASP.NET实现图片以二进制的形式存入数据库的方法.过去我们都是直接在数据库中存入图片文件名的,还没有试过存储整张图片到数据库中,经过一番资料查询与测试,整理出了如下的功能代码: 1.建立保存图片的表的SQL语句: USE [niunantest] GO /****** 对象: Table [dbo].[picdata] 脚本日期: 03/30/2010 14:51:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER

ASP.NET 图片防盗链的实现原理分析_实用技巧

那么我来介绍下图片放盗链的一个方法 首先,添加个httpHandlers请求,WEBCONFIG部分配置节如下: <httpHandlers> <add verb="*" path="*.jpg" type="myhandler,App_Code"/> </httpHandlers> 注意:对应于system.web之下,别添错了哦! 然后添加个class,取名为myhandler继承于IHttpHandler

Asp.net 2.0 无刷新图片上传 显示缩略图 具体实现_实用技巧

兼容性想还不错:FF,CH,IE,猎豹,都是可以实现的.如果看到回显.当然就是成功了. 经历了好几天的不停的钻牛角尖,终于将这个二货弄出来了.真是煞费苦心啊.但是做出来的瞬间还是蛮开心的. 第一步:我们需要加载几个JS库.jquery库.jquery.form.js库. 下载这两个库,并引用到页面中. 以下为页面中 JS 代码: 复制代码 代码如下:   function upload() {            var options = {                type: "PO

ASP.NET 图片加水印防盗链实现代码_实用技巧

首先建一个类: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Drawing; /// <summary> ///Class1 的摘要说明 /// </summary> public class Class1:IHttpHandler //调用接口 { public Class1() { // //TODO: 在

使用asp.net改变图片颜色如灰色的变成彩色_实用技巧

最近奇葩经理提出了奇葩的需求,要能在网站上改变图片的颜色,比如灰色的变成彩色,彩色的变成灰色,尼玛楼主的感受你们不懂!于是有了下面的代码. 用法:调用update_pixelColor方法并传参数即可 #region 改变图片颜色 /// <summary> /// 改变图片的颜色 /// </summary> /// <param name="filePath">图片的完整路径</param> /// <param name=&q

asp.net下将图片保存到XML文件的方法_实用技巧

一.保存图片到XML文件 复制代码 代码如下: /// <summary> /// 保存图片到XML文件 /// </summary> private void UploadImageToXml() { ///得到用户要上传的文件名 string strFilePathName = loFile.PostedFile.FileName; string strFileName = Path.GetFileName(strFilePathName); int FileLength =

.Net下二进制形式的文件(图片)的存储与读取详细解析_实用技巧

.Net下图片的常见存储与读取凡是有以下几种:存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[]. 1.参数是图片路径:返回Byte[]类型: 复制代码 代码如下: public byte[] GetPictureData(string imagepath)        {            ////根据图片文件的路径使用文件流打开,并保存为byte[]               FileStream fs =

FileUpload上传图片前实现图片预览功能(附演示动画)_实用技巧

看看效果:  在专案中,创建aspx页面,拉上FileUpload控件一个Image,将用来预览上传时的图片. 复制代码 代码如下: View Code <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> <!DOCTYPE html> <html xmln