Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Dobijanje podataka o slici bez ucitavanja u Bitmap klasu

  • 3 odgovora
  • 3.639 pregleda

Najnovija ↓

Dobijanje podataka o slici bez ucitavanja u Bitmap klasu 23.10.2008. u 14:00 · pre 219 meseci #1
Da li je moguce dobiti informacije o slici, pre svega visinu i sirinu, bez da se kreira Bitmap objekat?
Razlog je izbegavanje nepotrebnog ucitavanja i dekodiranja cele slike.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Dobijanje podataka o slici bez ucitavanja u Bitmap klasu 23.10.2008. u 14:05 · pre 219 meseci #2

Generalno gledano, za svaku sliku imas heder koji sadrzi podatke o slici (visina, sirina,...), ako znas o kojem formatu slike
se radi onda napravis f-ju koja cupa te podatke direktno iz fajla. Inace, koliko je meni poznato, .NET nema f-ju za direktno citanje velicine slike.
Re: Dobijanje podataka o slici bez ucitavanja u Bitmap klasu 23.10.2008. u 15:20 · pre 219 meseci #3
Da, znam da moze tako, ali mi ne odgovara, pre svega zbog slozenosti. Jedino ako ima nesto u samom framwork-u a da sam ja propustio :)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Dobijanje podataka o slici bez ucitavanja u Bitmap klasu 23.10.2008. u 19:44 · pre 219 meseci #4
Jel moguce da niko nije to napravio za NET (ili ja nisam mogao da nadjem).
Evo nakucao sam ti klasu za dobijanje dimenzija bitmape (bas za bmp). Treba ocitati 3 inta (bukvalno)
Ako ubacim jos neki format (npr. jpg) okacicu ...
Reference
http://www.fastgraph.com/help/bmp_header_format.html za bmp
Ova je za jpg http://www.obrador.com/essentialjpeg/headerinfo.htm
Code:

//Autor Nebojsa
    class ImageDimensions
    {
        private string fileName;
        private int X, Y;

        public ImageDimensions(string FileName)
        {
             this.fileName = FileName;
             UInt16 signature;

             if(File.Exists(fileName))
             {
                  BinaryReader binReader = new BinaryReader(File.Open(fileName, FileMode.Open));
                  try
                  {
                      signature = binReader.ReadUInt16();
                      //formati
                      if (signature == 0x4D42)//bmp
                      {
                          binReader.ReadBytes(16);
                          this.X = binReader.ReadInt32();
                          this.Y = binReader.ReadInt32();
                      }
                      //jpg
                  }

                  catch (EndOfStreamException e)
                  {
                      this.X = 0;
                      this.Y = 0;
                  }
                  finally
                  {
                      binReader.Close();
                  }
              }
        }

        public int GetWidth()
        {
            return this.X;
        }

        public int GetHeight()
        {
            return this.Y;
        }

    }


Code:

            ImageDimensions id = new ImageDimensions("C:\\bmp.bmp");
            int x=id.GetWidth();
            int y=id.GetHeight();
            string str = x + "x" + y;
            MessageBox.Show(str);
Potpis
HomePage http://www.eurora3d.com
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme