更改图像分辨率 [英] Change Image Resolution

查看:154
本文介绍了更改图像分辨率的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将一个上传图片的分辨率更改为小尺寸。如何使用c#asp.net



  if (fileUploadImage.HasFile)
{
int fileSize = fileUploadImage.PostedFile。的ContentLength;

if (fileSize > Convert.ToInt32(ConfigurationManager.AppSettings [< span class =code-string> fileSize]))
{
lblUploadImage.Visible = ;
}
else
{
String fileName = fileUploadImage.FileName.ToString(); // Substring(0,fileUploadImage.FileName.IndexOf(。));

string fileNameUrl = ConfigurationManager.AppSettings [ imagepath] + GenerateUniqueFileName(txtFname.Text,Path.GetExtension(fileName));

Bitmap upBmp =(Bitmap)Bitmap.FromStream(fileUploadImage.PostedFile.InputStream);


位图newBmp = 位图( 50 50 ,System.Drawing.Imaging.PixelFormat.Format24bppRgb);


newBmp.SetResolution( 72 72 );

Graphics newGraphic = Graphics.FromImage(newBmp);


尝试
{


newGraphic.Clear(Color。白色);


newGraphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;


newGraphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;


newGraphic.DrawImage(upBmp, 500 100 500 100 );


newBmp.Save(MapPath(fileNameUrl));


// 在图像控件中显示已上传的已调整大小的图片


imgProfile.Src = fileNameUrl;


lblUploadImage.Visible = true ;
}
catch (Exception exp)
{
}
// fileUploadImage.SaveAs(Server.MapPath(fileNameUrl));
// HiddenField1.Value = fileNameUrl;
// imgProfile.Src = fileNameUrl;
// lblUploadImage.Visible = false;
}

解决方案

您可以查看SetResolution-Method:

http://msdn.microsoft.com/de-de/library/ system.drawing.bitmap.setresolution.aspx [ ^ ]



但是,谢尔盖提到你可能想要做的是图像的下采样。<​​/ blockquote>

你好,你的代码中有一点错误,但它是如此有用。



你必须保存upBmp对象而不是newBmp对象。



非常感谢!!


i want to change the resolution of one uploaded image to small size .how to do this usng c# asp.net

if (fileUploadImage.HasFile)
 {
 int fileSize = fileUploadImage.PostedFile.ContentLength;
  
 if (fileSize > Convert.ToInt32(ConfigurationManager.AppSettings["fileSize"]))
 {
 lblUploadImage.Visible = true;
 }
 else
 {
 String fileName = fileUploadImage.FileName.ToString();//Substring (0,fileUploadImage.FileName.IndexOf("."));
  
 string fileNameUrl = ConfigurationManager.AppSettings["imagepath"] + GenerateUniqueFileName(txtFname.Text, Path.GetExtension(fileName));
  
 Bitmap upBmp = (Bitmap)Bitmap.FromStream(fileUploadImage.PostedFile.InputStream);
  
 
Bitmap newBmp = new Bitmap(50,50, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
  
 
newBmp.SetResolution(72, 72);
  
 Graphics newGraphic = Graphics.FromImage(newBmp);
  
 
try
 {
  
 
newGraphic.Clear(Color.White);
  
 
newGraphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
  
 
newGraphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
  
 
newGraphic.DrawImage(upBmp, 500, 100, 500, 100);
  
 
newBmp.Save(MapPath(fileNameUrl));
  
 
//Show the uploaded resized picture in the image control
  
 
imgProfile.Src = fileNameUrl;
  
 
lblUploadImage.Visible = true;
 }
 catch(Exception exp)
 {
 }
 // fileUploadImage.SaveAs(Server.MapPath(fileNameUrl));
 // HiddenField1.Value = fileNameUrl;
 // imgProfile.Src = fileNameUrl;
 // lblUploadImage.Visible = false;
 }

解决方案

You can have a look at the SetResolution-Method:
http://msdn.microsoft.com/de-de/library/system.drawing.bitmap.setresolution.aspx[^]

But as Sergey mentioned what you probably want to do is a Downsampling of the image.


Hello, you have a little mistake in your code, but it's so helpfully.

you must save the upBmp object and not the newBmp object.

Thank you so much!!


这篇关于更改图像分辨率的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆