2013-03-09 3 views
0

이미지를 회전하는 프로그램을 작성 중입니다. 이미지 형식은 비트 맵이며 http://en.wikipedia.org/wiki/BMP_file_format에 따르면 비트 맵 이미지의 rowsize는 4의 배수 여야합니다. 입력 이미지가 너무 작아서 새 이미지를 파일에 쓸 때 이미지 형식이 맞지 않습니다. 물론 먼저 데이터 배열을 픽셀 배열로 읽은 다음 배열을 회전합니다. 자세한 정보가 필요하면 알려주십시오.비트 맵 파일이 행의 크기가 4의 배수가 아닌 경우 어떻게해야합니까?

물론 이전 문제점이 해결되었지만 C++이이 구조의 크기를 56 바이트로 계산하는 이유를 모르겠습니다. 바이트 크기가 4의 배수가 그냥 여분의 추가 수 있도록 당신이 BMP 파일에 이미지를 쓸 때

struct Bitmap_Header 
{ 
    char H_Signature[2]; 
    unsigned int H_Filesize; 
    int H_Reserved; 
    unsigned int H_DataOffset; 
    unsigned int H_Size; 
    int H_Width; 
    int H_Height; 
    short int H_Planes; 
    short int H_BitCount; 
    unsigned int H_Compression; 
    unsigned int H_Imagesize; 
    int H_XPixelsPerM; 
    int H_YPixelsPerM; 
    unsigned int H_ColorsUsed; 
    unsigned int H_ColorsImportant; 
}; 

답변

0

이, 당신이 패드에 각각의 스캔 라인을 생각하고 : 여기

는 구조입니다 각 행의 끝에 0 바이트.

+0

제 입력 이미지는 686 * 400입니다. 픽셀 값을 2 차원 배열에 할당하는 방법을 설명해 주시겠습니까? –

+0

해결책을 찾았습니다. 귀하의 답변에 감사드립니다. –

관련 문제