我在我的网站上使用asp.net 3.5和c#。 这里是我的问题:查看上传的图片尺寸
我有一个上传按钮和asp:图像在一个页面上。用户可以从他的电脑上传图像,该图像将显示在asp:图像中。但在显示图像之前,我想检查上传图像的宽度和高度。我该怎么做呢?
在此先感谢。
我在我的网站上使用asp.net 3.5和c#。 这里是我的问题:查看上传的图片尺寸
我有一个上传按钮和asp:图像在一个页面上。用户可以从他的电脑上传图像,该图像将显示在asp:图像中。但在显示图像之前,我想检查上传图像的宽度和高度。我该怎么做呢?
在此先感谢。
Image img = System.Drawing.Image.FromFile("test.jpg");
int width = img.Width;
int height = img.Height;
您可能需要添加System.Drawing中参考。
如果您还没有将图像保存到磁盘,但是看看您如何使用图像(用户可以在Image控件中查看),您也可以使用FromStream
函数,我怀疑它已经在磁盘上。流到图像可能比磁盘更快也可能不更快。你可能想要做一些分析,看看哪个有更好的性能。
将图像载入Image并检查服务器的尺寸?
Image uploadedImage = Image.FromFile("uploadedimage.jpg");
// uploadedImage.Width and uploadedImage.Height will have the dimensions...
烨,如果图像心不是太大,服务器内存... – BerggreenDK 2013-03-16 13:54:41
在ASP.NET中,当文件上传时,通常有byte []或Stream。下面,我向您展示了一种方法来实现这一点,其中字节是上传文件的字节[]。如果你要保存文件,那么你有一个物理文件。您可以使用@Jakob或@Fun Mun Pieng向您展示的内容。
无论哪种方式,请务必处理您的Image实例,就像我在这里展示的那样。这非常重要(其他人没有显示这一点)。
using (Stream memStream = new MemoryStream(bytes))
{
using (Image img = System.Drawing.Image.FromStream(memStream))
{
int width = img.Width;
int height = img.Height;
}
}
Thaks Shiv。这是处理图像的好处。 – chuckyCheese 2011-03-04 13:13:45
如果您尝试上载PDF或EXE文件,这个文件也会崩溃。 – BerggreenDK 2013-03-16 14:28:51
尝试以下操作:
public bool ValidateFileDimensions()
{
using(System.Drawing.Image myImage =
System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream))
{
return (myImage.Height == 140 && myImage.Width == 140);
}
}
是的,非常适合图像,但如果用户上传“无图像”是由故障或故意造成的,则PDF和EXE存在问题。 – BerggreenDK 2013-03-16 14:30:00
试试这个:
Stream ipStream = fuAttachment.PostedFile.InputStream;
using (var image = System.Drawing.Image.FromStream(ipStream))
{
float w = image.PhysicalDimension.Width;
float h = image.PhysicalDimension.Height;
}
试试这个。
public boolean CheckImgDimensions(string imgPath, int ValidWidth , int ValidHeight){
var img = Image.FromFile(Server.MapPath(imgPath));
return (img.width == ValidWidth && img.height == ValidHeight);
}
用途:
if (CheckImgDimensions("~/Content/img/MyPic.jpg",128,128)){
/// what u want
}
感谢乐趣门。这帮助了我! – chuckyCheese 2011-03-04 13:14:17
这可以工作,直到有人上传恶意大图像 - 例如100k x 100k像素尺寸。您的服务器将耗尽内存。 – 2013-02-25 08:57:57
@o_o在大图像的情况下检查'HttpPostedFileBase.ContentLength'属性,以便没有人上传大于1-2兆字节的图像。 – vorrtex 2013-11-13 15:10:28