2011-11-14 5 views
1

LPPICTURE으로 이미지를 읽고 OleLoadPictre으로 읽고 창에 표시했지만 실제로 할 수있는 것은 이미지를 가능한 픽셀 행렬로 바꾸는 것입니다. 조작하고 이미지 파일로 다시 저장하십시오.C++의 픽셀 행렬로 이미지 읽기

OleLoadPicture을 사용하여 사실상 모든 주요 이미지 형식을 읽을 수 있습니다. 개별 픽셀에 액세스 할 수 있다면 루프를 통해 모두 추출 할 수 있습니다.

다른 관련 질문에서 사람들은 OpenCV 및 태양 아래 모든 것을 수행하는 기타 고도로 개발 된 라이브러리와 같이 부피가 큰 라이브러리를 사용하도록 제안했지만 가능한 한 내 솔루션을 유지하는 것이 좋습니다. 이미 픽셀을위한 기본 구조체를 작성했으며 직접 조작 한 것을 기쁘게 생각합니다.

나는 MagiC++로 ImageMagic 라이브러리를보고있었습니다. 아주 좋은 것처럼 보이지만, Windows API를 사용하여 픽셀을 추출하고 임의의 이미지 형식으로 이미지를 저장하는 솔루션이 있다면, 그것은 가장/가장 가볍습니다.

답변

1

OleLoadPictureIPicture의 인스턴스를 제공합니다. IPicture 인스턴스가 보유한 HBITMAP을 얻으려면 IPicture::get_Handle을 사용하십시오. 마지막으로 GetDIBits을 사용하여 픽셀 데이터를 가져옵니다.

그 일을위한 샘플 코드가 있습니다. here. MFC에서 일반 WinAPI로 변환하면 픽셀 데이터를 가져와야합니다.