이미지의 높이와 너비를 늘리도록 BMP 이미지 헤더 수정


0

따라서 일부 암호화 분석 중에 이미지의 높이와 크기를 늘릴 수 있도록 특정 BMP 이미지의 DIB 헤더를 수정해야합니다.

내가 찾은 내용은 다음과 같습니다.

typedef struct tagBITMAPINFOHEADER {
  DWORD biSize;
  LONG  biWidth;
  LONG  biHeight;
  WORD  biPlanes;
  WORD  biBitCount;
  DWORD biCompression;
  DWORD biSizeImage;
  LONG  biXPelsPerMeter;
  LONG  biYPelsPerMeter;
  DWORD biClrUsed;
  DWORD biClrImportant;
  } BITMAPINFOHEADER, *PBITMAPINFOHEADER;

문제는 높이와 크기를 늘리기 위해이 BMP 이미지의 16 진수 데이터를 수정할 수있을 정도로 이것을 이해하지 못한다는 것입니다. 누구나 높이와 너비를 100 배로 늘리는 방법을 알려주시겠습니까? 프로그램이나 다른 것을 사용 하여이 작업을 수행 할 필요가 없습니다. 어디를 아는 경우 수동으로 변경할 수 있습니다.

여기에 이미지 설명을 입력하십시오


이미지 데이터를 수정하지 않으면 불가능합니다.
ilkhd

1
크기를 수정하는 것은 단순히 두 값을 토글하는 것 이상입니다. 픽셀 데이터를 삽입해야합니다. 가비지 데이터를 추가하는 대신 수동으로 스케일 업하려는 경우 10 년 후에 만나게됩니다. 또한 DWORD가 무엇인지, 또는이 구조체가 디스크의 파일과 어떤 관련이 있는지 모르는 경우에는 연구를 시작해야합니다.
Yorik

@Yorik 입력 해 주셔서 감사합니다. 김프 편집기를 사용하여 이미지를 '스케일'했습니다. 너비와 높이를 100 배 늘리고 결과 이미지를 '내보냈습니다'. 이제이 새로운 이미지를 16 진수 편집기에서 암호화하려고합니다. 반복되는 AA.BB.CC 등을 많이 발견했습니다. 암호의 일부라고 생각합니다. 김프가 이미지 크기를 조절할 때 어떤 일이 발생하는지 정확히 말해 줄 수 있습니까? 가비지 값을 추가 했습니까? 새 파일을 보면 가비지가 아닌 패턴이 표시되기 때문입니다.
learnerX

당신은 수동으로하고 싶다고 말했다. 0으로 채울 수 있지만 x2 크기 조정은 픽셀을 분산시키고 평균화하여 픽셀 사이에 새로운 데이터를 삽입하는 것을 의미합니다. 분명히 "수동으로"이것은 계산기를 사용하고 HEX 편집기를 사용하여 수동으로 데이터를 입력하는 데 많은 시간이 소요됩니다.
Yorik

1
크기를 조정할 때 보간을 수행하고 있습니다. 일반적으로 이중 큐빅 ( en.wikipedia.org/wiki/Bicubic_interpolation ). 비트 맵 데이터는 임의의 색상 값과 조회 색인 및 1 채널을 가진 명시 적 팔레트로 저장 될 수 있습니다. 또는 암시 적 그레이 스케일 팔레트 및 3 개의 채널 (RGB)로.
Yorik

답변:


0

픽셀 데이터를 삽입 / 확장 할 수 있습니다. 즉, 각 픽셀을 가로 및 세로로 복제 한 다음 BITMAPINFOHEADER 및 BITMAPFILEHEADER를 새 값으로 변경하십시오. 수동 삽입은 실용적이지 않기 때문에 간단한 프로그램 인 프로그램을 작성해야합니다. 아래 링크는 크기 조정 및 BITMAPINFOHEADER BITMAPFILEHEADER에 대한 배경 지식을 제공하는 YouTube 비디오입니다. https://www.youtube.com/watch?v=g8LEbJapnj8


이 링크가 질문에 대답 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 할 수있는 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다.
Ramhound
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.