Avatar billede o-zone Nybegynder
28. december 2006 - 11:20 Der er 4 kommentarer og
1 løsning

få dimensionerne på et billede jeg henter fra nettet

Hej med jer...

Jeg har en metode der henter billeder fra nettet og gemmer dem i et lokalt directory. Nu står jeg så og skal bruge dimensionerne på billederne, da jeg skal generere xml filer hvor højde og brede på billederne fremgår. Er der nogen af jer der ved hvordan det kan lade sig gøre?

Jeg vil tro at der i langt de fleste tilfælde vil være tale om jpg billeder, men jeg kan ikke garantere at der ikke dukker gif eller png op også.
Avatar billede martinbk Nybegynder
28. december 2006 - 12:17 #1
du burde kunne loade et hvilket som helst billede ind i et Bitmap Object og bruge de 2 properties Width og Height direkte.

using System;
using System.Drawing;
using System.Drawing.Imaging

public class ImageInfo
{
  Bitmap picture;
 
  public void Load(string strImageFile)
  {
    picture = new Bitmap(strImageFile, false);
  }

  public int Height
  {
    get { return picture.Height; }
  }
 
  public int Width
  {
    get { return picture.Width; }
  } 
 
  public string Format
  {
    get
    {
      ImageFormat bmpFormat = picture.RawFormat;
      string strFormat = "unidentified format";
     
      if (bmpFormat.Equals(ImageFormat.Bmp)) strFormat = "BMP";
      else if (bmpFormat.Equals(ImageFormat.Emf)) strFormat = "EMF";
      else if (bmpFormat.Equals(ImageFormat.Exif)) strFormat = "EXIF";
      else if (bmpFormat.Equals(ImageFormat.Gif)) strFormat = "GIF";
      else if (bmpFormat.Equals(ImageFormat.Icon)) strFormat = "Icon";
      else if (bmpFormat.Equals(ImageFormat.Jpeg)) strFormat = "JPEG";
      else if (bmpFormat.Equals(ImageFormat.MemoryBmp)) strFormat = "MemoryBMP";
      else if (bmpFormat.Equals(ImageFormat.Png)) strFormat = "PNG";
      else if (bmpFormat.Equals(ImageFormat.Tiff)) strFormat = "TIFF";
      else if (bmpFormat.Equals(ImageFormat.Wmf)) strFormat = "WMF";
     
      return strFormat;
    }
  }
}
Avatar billede martinbk Nybegynder
28. december 2006 - 12:20 #2
bør nok lige sige at med ovenstående loader du et billede ind i memory, det kan godt blive en halv bekostelig æffære hvis du ikke ryder op efter dig, derfor når du er færdig med billedet kald da Dispose på det.

public void Dispose()
{
  picture.Dispose();
}
Avatar billede o-zone Nybegynder
28. december 2006 - 14:49 #3
takker - Det var jo lige sådan noget i den retning jeg havde håbet lidt på. Smid et svar, så får du points! :-)
Avatar billede martinbk Nybegynder
28. december 2006 - 14:50 #4
håber det kunne bruges, har du testet ?
Avatar billede o-zone Nybegynder
29. december 2006 - 08:14 #5
Nej - jeg har ikke fået testet det endnu ... men det lyder meget plausibelt :)
...min opgave er til gengæld blevet omdefineret i mellemtiden, så det ikke er sikkert at jeg får brug for dimensionerne :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester