asp.net 上传图片时改变图片的大小(注意:不是改变图片的宽高)

asp.net 上传图片时改变图片的大小(注意:不是改变图片的宽高),比如如何让200K 的图片上传后变为100K ???

除非改变图片格式
试试下面这个
/**/
/// <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)
{
System.Drawing.Image originalImage = System.Drawing.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图片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);

//新建一个画板
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(System.Drawing.Color.Transparent);

//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
new System.Drawing.Rectangle(x, y, ow, oh),
System.Drawing.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 上传图片时改变图片的大小(注意:不是改变图片的宽高)
case "HW":\/\/指定高宽缩放(可能变形)break;case "W":\/\/指定宽,高按比例 toheight = originalImage.Height * width \/ originalImage.Width;break;case "H":\/\/指定高,宽按比例 towidth = originalImage.Width * height \/ originalImage.Height;break;case "Cut":\/\/指定高宽裁减(不变形)if...

asp.net 上传图片如何固定图片的宽高
如果是把原图大小更改,就在服务器端用文件流读取文件并重新生成你指定尺寸大小的新文件。如果是只是单纯在图片显示的时候控制显示区的大小,就把Img标记的宽和高设置一下就可以了。

在asp.net网页中的table表里添加了一个图片 怎样调节图片的大小
没有办法进行调节,背景图片是不允许调节大小的。如果真的需要使用一个背景,建议自己用软件调整图片的大小后再添加背景图片。你如果非要这样使用背景图片的话可以使用层来进行布局。把有图片的层放在下面,里面放上<asp:Image>标签通过Height和Width来调整大小。

asp.net vb 怎么控制图片上传的长和宽如(200*300)
打开图片文件,读出image buffer的前240000个字节,保存.200*300=60000个像素,每像素4字节.

求asp.net 图片上传压缩图片大小代码 就是减小图片的分辨率存储图片到服 ...
\/\/\/ 1、生成缩略图片或按照比例改变图片的大小和画质 \/\/\/ 2、将生成的缩略图放到指定的目录下 \/\/\/ public class ImageClass { public Image ResourceImage;private int ImageWidth;private int ImageHeight;public string ErrMessage;\/\/\/ \/\/\/ 类的构造函数 \/\/\/ \/\/\/ 图片文件的全路径名称 p...

急!!asp.net页面中点击小图变大图
直接放入数据库(也可以保存在服务器 通常的办法)显示图片后 控制图片显示的大小 然后点击图片后,,用JS 弹出一个层 里面有一个img ,这个img并不设置宽度 如果你觉得这个img获取不了图片地址 那么你可以用JS 弹出一个iframe 里面套入 另外一张页面 ,可以通过传参数显示 再从数据库读取 显示图片 ...

ASP.NET(C#)如何限制发送图片的宽高?
最简单的方法,是显示的时候处理 500) {this.width = 350;}}" \/> 参考资料:http:\/\/www.zu14.cn\/tag\/javascript

ASP.NET如何获取上传图片尺寸(是指宽高)
function abc(){ alert(img2.width);} 2.采用流取得图片大小 Stream stream=file.PostedFile.InputStream;System.Drawing.Image image=System.Drawing.Image.FromStream(stream);Image.Width Image.Height 3.使用文件得到图片大小 System.Drawing.Image image=System.Drawing.Image.FromFile(图片路径)Imag...

显示图片时,如何限制图片长宽使其按比例缩小 asp.net(C#)
function changeImg(obj,width,height) { if ( obj.width > width || obj.height > height ) { var scale;var scale1 = obj.width \/ width;var scale2 = obj.height \/ height;if(scale1 > scale2){ scale = scale1;}else{ scale = scale2;} obj.width = obj.width \/ scale;obj....

用asp.net(C#)代码怎样让一张图片放大缩小啊,急啊!!!
Bitmap originBmp = new Bitmap("a.jpg");Bitmap resizedBmp = new Bitmap(w, h);Graphics g = Graphics.FromImage(resizedBmp);g.DrawImage(originBmp, new Rectangle(0,0,w,h), new Rectangle(0,0,originBmp.Width,originBmp.Height), GraphicsUnit.Pixel);resizedBmp.Save("b.jpg");g...

相似回答