Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dobijanje podataka o slici bez ucitavanja u Bitmap klasu

[es] :: .NET :: Dobijanje podataka o slici bez ucitavanja u Bitmap klasu

[ Pregleda: 2644 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Shadowed
Vojvodina

Član broj: 649
Poruke: 12875



+4792 Profil

icon Dobijanje podataka o slici bez ucitavanja u Bitmap klasu23.10.2008. u 13:00 - pre 196 meseci
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.
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.ADSL.neobee.net.



+987 Profil

icon Re: Dobijanje podataka o slici bez ucitavanja u Bitmap klasu23.10.2008. u 13:05 - pre 196 meseci

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.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12875



+4792 Profil

icon Re: Dobijanje podataka o slici bez ucitavanja u Bitmap klasu23.10.2008. u 14:20 - pre 196 meseci
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 :)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
91.148.115.*



+7 Profil

icon Re: Dobijanje podataka o slici bez ucitavanja u Bitmap klasu23.10.2008. u 18:44 - pre 196 meseci
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);

 
Odgovor na temu

[es] :: .NET :: Dobijanje podataka o slici bez ucitavanja u Bitmap klasu

[ Pregleda: 2644 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.