Aj so Sabom je az na buduci tyzden?
Prosim niekoho kto bol na cviceni a pozorne pocuval, nech mi popise a vysvetli zadanie 7, dakujem velmi pekne.
OMG sak pre negativ uplne staci urobit pre kazdy pixel a kazdu farbu RGB zlozky toto:c = 255 - c, kde c je farba
ludia mate uz niekto zrobenu 7cku? ak ano viete hodit nejaky link kde je nejaka jednoducha praca napr. s BMP-ckom? ako to nacitat a tak
typedef struct { uint16_t type; uint32_t hsize; uint16_t reserved1; uint16_t reserved2; uint32_t offsetbits; uint32_t size; uint32_t width; uint32_t height; uint16_t planes; uint16_t bitcount; uint32_t compression; uint32_t sizeimage; int32_t xpelspermeter; int32_t ypelspermeter; uint32_t colorsused; uint32_t colorsimportant;} BITMAPHEADER;void WriteBMP(const char * filename, BITMAPHEADER bmpheader, uint8_t *data){ FILE *bmp; bmp = fopen(filename, "wb"); if(!bmp) return; fwrite(&bmpheader.type, 2, 1, bmp); fwrite(&bmpheader.hsize, 4, 1, bmp); fwrite(&bmpheader.reserved1, 2, 1, bmp); fwrite(&bmpheader.reserved2, 2, 1, bmp); fwrite(&bmpheader.offsetbits, 4, 1, bmp); fwrite(&bmpheader.size, 4, 1, bmp); fwrite(&bmpheader.width, 4, 1, bmp); fwrite(&bmpheader.height, 4, 1, bmp); fwrite(&bmpheader.planes, 2, 1, bmp); fwrite(&bmpheader.bitcount, 2, 1, bmp); fwrite(&bmpheader.compression, 4, 1, bmp); fwrite(&bmpheader.sizeimage, 4, 1, bmp); fwrite(&bmpheader.xpelspermeter, 4, 1, bmp); fwrite(&bmpheader.xpelspermeter, 4, 1, bmp); fwrite(&bmpheader.colorsused, 4, 1, bmp); fwrite(&bmpheader.colorsimportant, 4, 1, bmp); fwrite(data, sizeof(uint8_t), 3 * bmpheader.width * bmpheader.height, bmp); fclose(bmp); return;}uint8_t *LoadBMP(const char * filename, BITMAPHEADER *bmpheader){ FILE *bmp; uint8_t *data; bmp = fopen(filename, "rb"); if(!bmp) return NULL; fread(&(*bmpheader).type, 2, 1, bmp); fread(&(*bmpheader).hsize, 4, 1, bmp); fread(&(*bmpheader).reserved1, 2, 1, bmp); fread(&(*bmpheader).reserved2, 2, 1, bmp); fread(&(*bmpheader).offsetbits, 4, 1, bmp); fread(&(*bmpheader).size, 4, 1, bmp); fread(&(*bmpheader).width, 4, 1, bmp); fread(&(*bmpheader).height, 4, 1, bmp); fread(&(*bmpheader).planes, 2, 1, bmp); fread(&(*bmpheader).bitcount, 2, 1, bmp); fread(&(*bmpheader).compression, 4, 1, bmp); fread(&(*bmpheader).sizeimage, 4, 1, bmp); fread(&(*bmpheader).xpelspermeter, 4, 1, bmp); fread(&(*bmpheader).xpelspermeter, 4, 1, bmp); fread(&(*bmpheader).colorsused, 4, 1, bmp); fread(&(*bmpheader).colorsimportant, 4, 1, bmp); if((*bmpheader).bitcount != 24) { printf("Unsupported File Format!\n"); } data = (uint8_t *) malloc(sizeof(uint8_t) * 3 * (*bmpheader).width * (*bmpheader).height); fread(data, sizeof(uint8_t), 3 * (*bmpheader).width * (*bmpheader).height, bmp); fclose(bmp); return data;}
Quote from: puq on 25.11.2010, 02:21:20ludia mate uz niekto zrobenu 7cku? ak ano viete hodit nejaky link kde je nejaka jednoducha praca napr. s BMP-ckom? ako to nacitat a takpovodne som sa snazil nacitat hlavicku ako celok no zarovnavanie struktur to cele posr... . tazke som to riesil takto. a este netreba zabudnut ze obrazok je ulozeny ako BGR, nie ako RGBfalat kodu z mojej 7ky: Code: [Select]typedef struct { uint16_t type; uint32_t hsize; uint16_t reserved1; uint16_t reserved2; uint32_t offsetbits; uint32_t size; uint32_t width; uint32_t height; uint16_t planes; uint16_t bitcount; uint32_t compression; uint32_t sizeimage; int32_t xpelspermeter; int32_t ypelspermeter; uint32_t colorsused; uint32_t colorsimportant;} BITMAPHEADER;void WriteBMP(const char * filename, BITMAPHEADER bmpheader, uint8_t *data){ FILE *bmp; bmp = fopen(filename, "wb"); if(!bmp) return; fwrite(&bmpheader.type, 2, 1, bmp); fwrite(&bmpheader.hsize, 4, 1, bmp); fwrite(&bmpheader.reserved1, 2, 1, bmp); fwrite(&bmpheader.reserved2, 2, 1, bmp); fwrite(&bmpheader.offsetbits, 4, 1, bmp); fwrite(&bmpheader.size, 4, 1, bmp); fwrite(&bmpheader.width, 4, 1, bmp); fwrite(&bmpheader.height, 4, 1, bmp); fwrite(&bmpheader.planes, 2, 1, bmp); fwrite(&bmpheader.bitcount, 2, 1, bmp); fwrite(&bmpheader.compression, 4, 1, bmp); fwrite(&bmpheader.sizeimage, 4, 1, bmp); fwrite(&bmpheader.xpelspermeter, 4, 1, bmp); fwrite(&bmpheader.xpelspermeter, 4, 1, bmp); fwrite(&bmpheader.colorsused, 4, 1, bmp); fwrite(&bmpheader.colorsimportant, 4, 1, bmp); fwrite(data, sizeof(uint8_t), 3 * bmpheader.width * bmpheader.height, bmp); fclose(bmp); return;}uint8_t *LoadBMP(const char * filename, BITMAPHEADER *bmpheader){ FILE *bmp; uint8_t *data; bmp = fopen(filename, "rb"); if(!bmp) return NULL; fread(&(*bmpheader).type, 2, 1, bmp); fread(&(*bmpheader).hsize, 4, 1, bmp); fread(&(*bmpheader).reserved1, 2, 1, bmp); fread(&(*bmpheader).reserved2, 2, 1, bmp); fread(&(*bmpheader).offsetbits, 4, 1, bmp); fread(&(*bmpheader).size, 4, 1, bmp); fread(&(*bmpheader).width, 4, 1, bmp); fread(&(*bmpheader).height, 4, 1, bmp); fread(&(*bmpheader).planes, 2, 1, bmp); fread(&(*bmpheader).bitcount, 2, 1, bmp); fread(&(*bmpheader).compression, 4, 1, bmp); fread(&(*bmpheader).sizeimage, 4, 1, bmp); fread(&(*bmpheader).xpelspermeter, 4, 1, bmp); fread(&(*bmpheader).xpelspermeter, 4, 1, bmp); fread(&(*bmpheader).colorsused, 4, 1, bmp); fread(&(*bmpheader).colorsimportant, 4, 1, bmp); if((*bmpheader).bitcount != 24) { printf("Unsupported File Format!\n"); } data = (uint8_t *) malloc(sizeof(uint8_t) * 3 * (*bmpheader).width * (*bmpheader).height); fread(data, sizeof(uint8_t), 3 * (*bmpheader).width * (*bmpheader).height, bmp); fclose(bmp); return data;}
Ako ma vyzerat ta dokumentacia k zadaniam? Je niekde nejaky sample/tutorial?