Проверить размеры загруженного изображения
Я использую asp.net 3.5 и c# на моем веб-сайте. Вот myquestion:
У меня есть кнопка загрузки и asp: изображение на странице. Пользователь может загрузить изображение со своего компьютера, и это изображение будет отображаться в asp:image. Но прежде чем отображать изображение, я хотел бы проверить ширину и высоту загруженного изображения. Как мне это сделать?
6 ответов
Image img = System.Drawing.Image.FromFile("test.jpg");
int width = img.Width;
int height = img.Height;
возможно, Вам потребуется добавить систему.Ссылка на чертеж.
вы также можете использовать FromStream
функция если вы еще не сохранили изображение на диск, но глядя на то, как вы используете изображение (просматриваемое Пользователем в элементе управления изображением), я подозреваю, что он уже на диске. Поток к образу может быть или не быть быстрее, чем диск к образу. Возможно, вы захотите сделать некоторое профилирование, чтобы увидеть, какая из них имеет лучшую производительность.
In ASP.NET обычно при загрузке файла используется byte[] или Stream. Ниже, я покажу вам один из способов сделать это, где байт-это байт[] файл загружен. Если вы сохраняете файл fisrt, у вас есть физический файл. и вы можете использовать то, что @Jakob или @Fun Mun Pieng показали вам.
в любом случае, не забудьте удалить экземпляр изображения, как я показал здесь. Это очень важно (другие этого не показали).
using (Stream memStream = new MemoryStream(bytes))
{
using (Image img = System.Drawing.Image.FromStream(memStream))
{
int width = img.Width;
int height = img.Height;
}
}
попробуйте следующее:
public bool ValidateFileDimensions()
{
using(System.Drawing.Image myImage =
System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream))
{
return (myImage.Height == 140 && myImage.Width == 140);
}
}
загрузите изображение в изображения и проверить размеры serverside?
Image uploadedImage = Image.FromFile("uploadedimage.jpg");
// uploadedImage.Width and uploadedImage.Height will have the dimensions...
попробуйте это:
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
}