bmp 파일을 뒤집어 씌우려 고합니다. 올바른 출력을 얻는 데 너무 가깝지만 어디서 잘못되었는지 잘 모릅니다.BMP 그림 반전 결과가 엉망입니다.
는 [내 출력이 [1]로 반전 이미지
원래는 중간에 검은 상자 X 흰색 배경이었다. 그러나 오른쪽 상단에는 검은 선이 없었습니다 (제 출력물은 오른쪽 상단 근처에 흰색 선이 있습니다). 모든 설명을 이해할 수 있습니다. 픽셀
int index = 0;
while (index < dibHeader.width) {
int index2 = 0;
while (index2< dibHeader.length) {
fread(&pixel.b, 1, 1, file);
unsigned int blue = pixel.b;
blue = ~blue;
pixel.b = (char) blue;
... Same for green/red
fseek(file, -3, SEEK_CUR);
f(write(&pixel.b, 1, 1, file);
... Same for green/red
index2++;
}
index++;
}
구조체 : 반전하지
루프 픽셀의
struct Pixels {
unsigned char b, g, r;
}
선언을
struct Pixels pixel;
'픽셀'을 선언하는 코드와 '픽셀'을 진행하는 코드를 포함 할 수 있습니까? – Reg
각 행을 4 바이트의 배수로 만들기 위해 필요한 패딩을 어떻게 처리합니까? –
모든 픽셀을 읽고 탐색하지 마십시오. 전체 내용을 읽고 처리하고 전체적으로 다시 작성하십시오. 그것은 훨씬 더 효율적 일 것입니다. – rustyx