C++ : 비트 세트 변수가 비트 셋 변수 대신 사용되면 (올바르게!) 프로그램이 작동하지 않는 것 같습니다.
// 작업 목적으로이 코드를 일부 수정했습니다. 나는 당신이 monocrome 이미지 내로 8bpp를 이미지를 분할해야하는 이유 당신이 다음에 save_bmp의 기능을 변경하지만 경우, 이해가 아주 확실하지 않다
C++ : 비트 세트 변수가 비트 셋 변수 대신 사용되면 (올바르게!) 프로그램이 작동하지 않는 것 같습니다.
// 작업 목적으로이 코드를 일부 수정했습니다. 나는 당신이 monocrome 이미지 내로 8bpp를 이미지를 분할해야하는 이유 당신이 다음에 save_bmp의 기능을 변경하지만 경우, 이해가 아주 확실하지 않다
은, 적어도 "유효"하는 이미지
void save_bmp(char *fname, BITMAPFILEHEADER *header, BITMAPINFOHEADER *info,
std::bitset<N> *image)
{
FILE *file_ptr = fopen(fname, "wb");
fwrite(header, sizeof(BITMAPFILEHEADER), 1, file_ptr);
fwrite(info, sizeof(BITMAPINFOHEADER), 1, file_ptr);
fwrite(&create_palette(0,0,0), sizeof(RGBQUAD), 1, file_ptr);
fwrite(&create_palette(255,255,255), sizeof(RGBQUAD), 1, file_ptr);
//fwrite(image, N, 1, file_ptr);
unsigned char * b = pack(image);
fwrite(b,N/8,1,file_ptr);
delete[] b;
fclose(file_ptr);
}
을 생산
std : 비트 세트는 객체이며 버퍼가 아닙니다. 비트 세트를 버퍼에 압축하는 팩 기능이 이미 있으므로 파일에 객체를 쓰는 대신이를 사용하는 것이 자연스러운 것처럼 보였습니다.
-1 : 이것은 좋은 SO 질문에 대한 너무 많은 코드입니다. 문제를 나타내는 최소 수준으로 코드를 줄입니다. – thiton
이 실제로이 문제를 일으키는 최소 코드 금액입니까? 약간 부풀어 오른 것 같습니다. – stefan
질문을 닫지 않게하기 위해 현상금을 게시하는 것은 디버거를 사용하고 최소한의 테스트 사례를 작성하는 것을 배우는 것만 큼 생산적이지 않습니다. –