Q&A

  • image(.jpg) 파일을 dll로 만들고 로드하는 방법..
질문이 좀 애매모호한것 같군요.



이러한 질문을 한 이유는 프로그램을 배포할 때 여러개의 Image화일을 배포하지 않기 위해서 입니다.



저는 이러한 문제를 해결하기 위해서 .RC화일을 생성해서 BRCC32.exe로 .RES파일을 생성해서 $R Compiler Directive를 사용해서 문제를 해결했는데 알고보니 .RES화일에 한계가 있다고 하더군요. 그래서 10메가 정도되는 이미지 화일을 어떻게 처리해야 할지 막막합니다.



DLL형태로 이미지를 처리하는 방법이 있을법도 한데 있다면 도움을 주시면 감사하겠습니다.



참고로 .RES화일을 다루는 법을 적어 보았습니다.

uses JPEG;



{$R *.DFM}

{$R MyPic.RES}



procedure TForm1.Button1Click(Sender: TObject);

var

MyJPG : TJPEGImage; // JPEG object

ResStream : TResourceStream; // Resource Stream object

begin

try

MyJPG := TJPEGImage.Create;

ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);

MyJPG.LoadFromStream(ResStream); // What!? Yes, that easy!

Canvas.Draw(0,0,MyJPG); // draw it to see if it really worked!

finally

MyJPG.Free;

ResStream.Free;

end;

end;



1  COMMENTS
  • Profile
    이정욱 1999.06.05 01:12
    나이렉스게시판에(http://www.nilex.net)의 강좌/팁을 보세요.

    방법이 있습니다.



    이승윤 께서 말씀하시기를...

    > 질문이 좀 애매모호한것 같군요.

    >

    > 이러한 질문을 한 이유는 프로그램을 배포할 때 여러개의 Image화일을 배포하지 않기 위해서 입니다.

    >

    > 저는 이러한 문제를 해결하기 위해서 .RC화일을 생성해서 BRCC32.exe로 .RES파일을 생성해서 $R Compiler Directive를 사용해서 문제를 해결했는데 알고보니 .RES화일에 한계가 있다고 하더군요. 그래서 10메가 정도되는 이미지 화일을 어떻게 처리해야 할지 막막합니다.

    >

    > DLL형태로 이미지를 처리하는 방법이 있을법도 한데 있다면 도움을 주시면 감사하겠습니다.

    >

    > 참고로 .RES화일을 다루는 법을 적어 보았습니다.

    > uses JPEG;

    >

    > {$R *.DFM}

    > {$R MyPic.RES}

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > MyJPG : TJPEGImage; // JPEG object

    > ResStream : TResourceStream; // Resource Stream object

    > begin

    > try

    > MyJPG := TJPEGImage.Create;

    > ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);

    > MyJPG.LoadFromStream(ResStream); // What!? Yes, that easy!

    > Canvas.Draw(0,0,MyJPG); // draw it to see if it really worked!

    > finally

    > MyJPG.Free;

    > ResStream.Free;

    > end;

    > end;

    >