|
소심남 님이 쓰신 글 :
: 넵, 감사합니다. ^^
: 헌데.. 보충 설명이 필요하네요.
: 이렇게 하면 JPG로 바꾸는데는 문제 없겠지만
: GIF나 PNG로도 바꾸고 싶거든요.
: 역시 배열 정보가 어디 있는지 알아야...
: Stream형식으로 바꾸는 설명도 좀 자세히 부탁드릴께요.
:
: 감사합니다. ^^ (총각~ 복받을껴~?)
:
임펠리테리입니다.
TImage 내에서 비트맵을 가지고 있는 것은 TImage::Picture::Bitmap입니다. 당근 TBitmap형입니다. 그런데 이 TBitmap도 이미지 데이터 자체는 아니고, 다시 그 안의 TBitmapImage타입의 FImage 값이 비트맵 자체를 가지고 있습니다. 그런데 이 값은 private 형이기 때문에 직접 억세스가 불가능합니다.
VCL 방식에서는, gif나 png 등 새로운 이미지 포맷을 지원하기 위해서는 마치 비트맵을 위해 TBitmap이 있듯이, 그 포맷을 위한 TGraphic을 상속받는 새로운 이미지포맷 클래스를 정의하고 필요한 버추얼 함수들을 재정의해서 만듭니다. TJPEGImage 타입이 그렇게 만들어진 것이며, 그전에는 빌더에 포함되어 있지 않던 것이 빌더4 부터 vcl에 포함된 것입니다. 새로운 클래스를 만든 후, TPicture::RegisterFileFormat() 함수를 이용하여 사용하겠다고 등록을 하면 됩니다.
하지만, 실제로는.. 대부분의 이미지 포맷에 대해서 뛰어난 델파이/빌더 개발자들이 이미 라이브러리로 만들어서 공개로 배포중인 라이브러리가 많이 있습니다. 그 중에서도, gif 포맷을 가장 잘 지원하기로 유명한 TGIFImage는 이미 자료실에 있습니다. png 포맷과 기타 여러 이미지 포맷에 대해서는, 강력한 공개 라이브러리인 GraphicEx를 방금 자료실에 올렸으니 다운받아서 사용하세요.
그럼 참고하시길...
|