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

BMP Datoteka - Ucitavanje u matricu

[es] :: C/C++ programiranje :: BMP Datoteka - Ucitavanje u matricu

[ Pregleda: 2105 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

typedef
Marko Matic
Zemun

Član broj: 96495
Poruke: 15
..shall-bg.customer.sbb.co.yu.

Sajt: www.cipiripper.cjb.net


Profil

icon BMP Datoteka - Ucitavanje u matricu31.05.2006. u 18:00 - pre 218 meseci
Pishem neki ispitni projekat u C-u koji treba da obradjuje Uncompressed 24b BMP slike. Otprilike funkcionishe ovako: BMP datoteku uchitavam u matricu i vrshim transformacije nad njom radi postizanja zeljene izmene nad slikom. I na kraju sve iz RAM-a snimim na HDD. Izmene su rotiranje, flip, darker, lighter, kontrast, blend, edge detection... trte-mrte...

PROBLEM:
BMP datoteka se sastoji iz FILE HEADERA, INFO HEADERA, PALETE i "SLIKE" - niza od B,G,R bajtova.

Prochitam fajl heder, info heder, paletu, dodjem do slike i eto problema! Konkretno, ucitam sliku 10x10 pixela u kojoj je svaki pixel crven (0, 0, 255). Pronadjem u info hederu da mi je slika 10x10, iterativno krenem da chitam pixele:


typedef unsigned char byte;

typedef struct {
byte b; /* PLAVA */
byte g; /* ZELENA */
byte r; /* CRVENA */
}PIXEL;

PIXEL pix;

***
fread(&pix, sizeof(pix), 1, slika);

***
printf("%4d,%4d,%4d ", pix.b, pix.g, pix.r);

Prochitam ja od 1 do 10 pixela kako treba u prvom redu (tachnije u poslednjem jer je u BMP datoteci slika naopachke) i dobijem prikaz:

0, 0, 255 0, 0, 255 0, 0, 255 0, 0, 255 ... 0, 0, 255

Zatim predjem na drugi red i pojave mi se dve nule!?!?!

0, 0, 255 0, 0, 255 0, 0, 255 0, 0, 255 ... 0, 0, 255
0 0

I onda opet 10 crvenih pixela iz sledeceg reda i tako sve... KAO DA IMA DVE KOLONE NULTIH PIXELA VISHKA A DA TO NIGDE NE MOGU DA NADJEM U DOKUMENTACIJI!!! Sve radi kako treba kad preskocim ta dva pixela sa:

fseek(f, 2 ,SEEK_CUR); -( 2 da preskochim ta dva vishka pixela!)

Probao sam i sa vecim i manjim slikama i svim zivim i uvek moram da preskocim 2 pixela za prelazak u novi red.

ZNA LI NEKO ZBOG CHEGA??!?!!!




S R B I J A !!!

[img]http://www.vucjak.com/srbblk.gif[/img]
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.dsl.pipex.com.



+4 Profil

icon Re: BMP Datoteka - Ucitavanje u matricu31.05.2006. u 18:11 - pre 218 meseci
Wild guess, poshto se ne secam BMP formata:
- Pogledaj da nije problem u "alignment"-u. Tj. izgleda mi iz ove perspektive da su linije slike zaokruzhene na 4-bajtnu velichinu (10*3 + 2 vishka u tvom sluchaju daju 32 bajta)
 
Odgovor na temu

typedef
Marko Matic
Zemun

Član broj: 96495
Poruke: 15
..shall-bg.customer.sbb.co.yu.

Sajt: www.cipiripper.cjb.net


Profil

icon Re: BMP Datoteka - Ucitavanje u matricu31.05.2006. u 18:38 - pre 218 meseci
Isto se deshava i sa 9x9, 141x329... :|
S R B I J A !!!

[img]http://www.vucjak.com/srbblk.gif[/img]
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: BMP Datoteka - Ucitavanje u matricu31.05.2006. u 19:49 - pre 218 meseci
Da, k'o shto rekoh :

Citat:
Another important thing is that the number of bytes in one row must always be adjusted to fit into the border of a multiple of four. You simply append zero bytes until the number of bytes in a row reaches a multiple of four, an example:

6 bytes that represent a row in the bitmap: A0 37 F2 8B 31 C4
must be saved as: A0 37 F2 8B 31 C4 00 00

 
Odgovor na temu

typedef
Marko Matic
Zemun

Član broj: 96495
Poruke: 15
..shall-bg.customer.sbb.co.yu.

Sajt: www.cipiripper.cjb.net


Profil

icon Re: BMP Datoteka - Ucitavanje u matricu01.06.2006. u 00:01 - pre 218 meseci
Kontam o chemu govorish. Ali mi nije jasno zashto meni i sa 9 bajta on doda 2. To mu dodje u prevodu da je 11 (ukupna duzina sa dodatim null bajtovima) deljiva sa 4. :\ Zar onda ne bi trebao da doda 3 bajta?! Ili ja ovde neshto ne kontam kako treba. :|

Hvala ti na saradnji! :)

S R B I J A !!!

[img]http://www.vucjak.com/srbblk.gif[/img]
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: BMP Datoteka - Ucitavanje u matricu01.06.2006. u 02:27 - pre 218 meseci
Neshto si ti tu prekalkulisao. Prvo proveri BITMAPINFOHEADER.biBitCount da proverish koliko bitova imash po pikselu.

Link sa sorsom za chitanje bmp-a :
http://astronomy.swin.edu.au/~pbourke/dataformats/bmp/
 
Odgovor na temu

typedef
Marko Matic
Zemun

Član broj: 96495
Poruke: 15
..shall-bg.customer.sbb.co.yu.

Sajt: www.cipiripper.cjb.net


Profil

icon Re: BMP Datoteka - Ucitavanje u matricu01.06.2006. u 16:46 - pre 218 meseci
:D Uspeh da izvedem kako treba! :) Fala na pomoci!
S R B I J A !!!

[img]http://www.vucjak.com/srbblk.gif[/img]
 
Odgovor na temu

[es] :: C/C++ programiranje :: BMP Datoteka - Ucitavanje u matricu

[ Pregleda: 2105 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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