Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the the dimensions of an image file?

I have a file called FPN = "c:\ggs\ggs Access\images\members\1.jpg "

I'm trying to get the dimension of image 1.jpg, and I'd like to check whether image dimension is valid or not before loading.

like image 891
user682417 Avatar asked Jun 23 '11 14:06

user682417


People also ask

What is the dimension of an image?

Image dimensions are the length and width of a digital image. It is usually measured in pixels, but some graphics programs allow you to view and work with your image in the equivalent inches or centimeters.


2 Answers

System.Drawing.Image img = System.Drawing.Image.FromFile(@"c:\ggs\ggs Access\images\members\1.jpg"); MessageBox.Show("Width: " + img.Width + ", Height: " + img.Height); 
like image 120
John T Avatar answered Sep 22 '22 13:09

John T


Wpf class System.Windows.Media.Imaging.BitmapDecoder doesn't read whole file, just metadata.

using(var imageStream = File.OpenRead("file")) {     var decoder = BitmapDecoder.Create(imageStream, BitmapCreateOptions.IgnoreColorProfile,         BitmapCacheOption.Default);     var height = decoder.Frames[0].PixelHeight;     var width = decoder.Frames[0].PixelWidth; } 

Update 2019-07-07 Dealing with exif'ed images is a little bit more complicated. For some reasons iphones save a rotated image and to compensate they also set "rotate this image before displaying" exif flag as such.

Gif is also a pretty complicated format. It is possible that no frame has full gif size, you have to aggregate it from offsets and frames sizes.

So I used ImageProcessor instead, which deals with all the problems for me. Never checked if it reads the whole file though, because some browsers have no exif support and I had to save a rotated version anyway.

using (var imageFactory = new ImageFactory()) {     imageFactory         .Load(stream)         .AutoRotate(); //takes care of ex-if     var height = imageFactory.Image.Height,     var width = imageFactory.Image.Width } 
like image 21
Atomosk Avatar answered Sep 20 '22 13:09

Atomosk