|
좀해보자 님이 쓰신 글 :
: 이미지파일을 fopen........fread........하면 메모리상에 데이터가 들어가있는 곳을 배열로 찍고 있겠죠?
:
: (fread의 프로토타입을 보면 그렇게 되어 있는거 같던데...)
:
: 그 배열(일명 : ptr[i])라고 하고 scanline을 통해서 이미지를 뿌릴려고 하는데요
:
: ptr에는 일차원으로 값을 갖고 있는것처럼 보이니까 첫번째 주소값만 scanline에 넘겨주면 되는건가요?
:
: scanline[0] 으로 사용할껀데 배열이 가진 첫번째 주소값을 어떻게 scanline에 넘겨 줄수 있을까요?
:
:
: 즐거운 명절 되세요~~
굳이 이미지 파일 포맷에 대해 구체적으로 공부하고 싶다면 모를까 이미지 파일에 대해 fopen,fread 등을 사용하여 Raw Data를 다룰 일은 없습니다.
특별히 그렇게 만들지 않는 이상 이미지 파일은 단순한 픽셀 정보만 플랫하게 들어가 있는 것이 아닙니다.
다시말해 님이 말씀하신 것과 같은 이미지 파일은 표준이 아닙니다.
이미지 파일에는 선두에 헤더가 있습니다.
헤더 형식은 이미지 파일의 형식에 따라 다를 수 있구요.
한편 이미지 파일의 픽셀 정보는 픽셀 정보를 그대로 저장하지 않는다고 보면 됩니다.
일예로, JPEG 형식은 압축하여 저장합니다.
결국, 이미지 파일에 대해 조작을 가하려면 해당 이미지 형식에 맞는 컴포넌트를 사용하시는 게 좋습니다.
Bitmap 형식은 Graphics::TBitmap, JPEG 형식은 TJPEGImage ...
|