日期:2014-05-20  浏览次数:20412 次

关于显示图片大小问题!!!急!!!!!!
在页面中显示图片的时候,由于单元格的高与宽没有图片的大,所以经常让图片把单元格变大,谁能帮帮我控制一下上传以后   显示出来的图片的大小是按比例变小啊。

------解决方案--------------------
Tag: 上传图到SQL数据库

看了别人的代码,自己又加了一些。
上传图到数据库,如果上传的图过大,可以按比例缩放。
还可生成小的缩略图保存到数据库中。


using System.IO;
using System.Data.SqlClient;
using System.Configuration;

private System.Drawing.Imaging.ImageFormat GetImageType(object strContentType)
{
if ((strContentType.ToString().ToLower()) == "image/pjpeg ")
{
return System.Drawing.Imaging.ImageFormat.Jpeg;
}
else if ((strContentType.ToString().ToLower()) == "image/gif ")
{
return System.Drawing.Imaging.ImageFormat.Gif;
}
else if ((strContentType.ToString().ToLower()) == "image/bmp ")
{
return System.Drawing.Imaging.ImageFormat.Bmp;
}
else if ((strContentType.ToString().ToLower()) == "image/tiff ")
{
return System.Drawing.Imaging.ImageFormat.Tiff;
}
else if ((strContentType.ToString().ToLower()) == "image/x-icon ")
{
return System.Drawing.Imaging.ImageFormat.Icon;
}
else if ((strContentType.ToString().ToLower()) == "image/x-png ")
{
return System.Drawing.Imaging.ImageFormat.Png;
}
else if ((strContentType.ToString().ToLower()) == "image/x-emf ")
{
return System.Drawing.Imaging.ImageFormat.Emf;
}
else if ((strContentType.ToString().ToLower()) == "image/x-exif ")
{
return System.Drawing.Imaging.ImageFormat.Exif;
}
else if ((strContentType.ToString().ToLower()) == "image/x-wmf ")
{
return System.Drawing.Imaging.ImageFormat.Wmf;
}
else
{
return System.Drawing.Imaging.ImageFormat.MemoryBmp;
}
}


private byte[] imageToStream(int nWidth ,int nHeigth,Stream fileDataStream,string fileType)
{

//这个对于大图效果就不好了。

//把image转成stream
System.Drawing.Image image;
image = System.Drawing.Image.FromStream(fileDataStream);
image = image.GetThumbnailImage(nWidth, nHeigth, null, IntPtr.Zero);

Stream MemStream = new MemoryStream();
image.Save(MemStream,GetImageType(fileType));
//MemStream.WriteTo(Response.OutputStream);

int fileLength = Convert.ToInt32(MemStream.Length);

byte[] fileData =new byte[fileLength];

//把文件流填充到数组
MemStream.Position = 0;
MemStream.Read(fileData,0,fileLength);
MemStream.Close();

return fileData;

}