soo ich habe es geschafft die (unkomprimierte)datei richtig einzulesen und zu verändern aber jetzt habe ich ein weiteres problem.. und zwar eine RLE komprimierte datei wird falsch eingelesen... und somit arbeitet der mit CRAP-data
weiss nicht wo mein fehler ist, hier der code ->
Code:
BYTE bild[bih.biHeight][bih.biWidth];
if (bih.biCompression == 0) { /*unkomprimiert*/ for (y = 0; y < bih.biHeight; y++) { rc = fread( &bild[bih.biHeight-y-1], 1, bih.biWidth, f); if (rc != bih.biWidth) { perror("fread bild"); fclose(f); return 1; } } } else if (bih.biCompression == 1) { /*RLE */
x = 0; y = bih.biHeight - 1;
bool = 1; while (bool) { sign1 = getc(f); if (sign1 == -1) { perror("file end"); fclose(f); //return 1; bool = 0; } else if (sign1 != 0) { sign2 = getc(f); for (i = 0; i < sign1; i++) { bild[y][x] = (BYTE)sign2; x++; /*if (x == bih.biWidth) { y++; x = 0; }*/ } } else { sign2 = getc(f); if (sign2 == 0) { x = 0; y--; } else if (sign2 == 1) bool = 0; else if (sign2 == 2) { x = x + getc(f); y = y - getc(f); } else { for (i = 0; i < sign2; i++) { bild[y][x] = (BYTE)getc(f); x++; /*if (x == bih.biWidth) { y++; x = 0; }*/ } sign2 = getc(f); }//sign2>2 }//sign1 = 0 }//while }//compressed fclose(f);