Q&A

  • jpeg파일들을 dll로 작성해서 사용하는 방법
여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다.

아시는 분은 좀 가르쳐 주십시오.

2  COMMENTS
  • Profile
    글쎄요 1999.06.11 00:02
    이승윤 께서 말씀하시기를...

    > 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다.

    > 아시는 분은 좀 가르쳐 주십시오.

    ///////

    여기를 참조하셔요.

    http://www.borland.com/devsupport/delphi/qanda/FAQ2626D.html



  • Profile
    구창민 1999.06.10 20:16
    이승윤 께서 말씀하시기를...

    > 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다.

    > 아시는 분은 좀 가르쳐 주십시오.



    이승윤님 안녕하세요?

    아래는 하이텔동호회에서 활동중이신 황용호님이 쓰신

    리소스에서 JPEG읽어 출력하기 입니다.



    Image파일을 dll로 왜 만들려고 하시는지?

    아래 방법은 dll로 만드는 것은 아니지만 참조해 보시기 바랍니다.



    /////////////////////////////////////////////////////////////////

    JPEG파일을 리소스로 만들고 그 리소스를 TImage를 이용하여



    출력하려면 다음과 같이 하시면 됩니다.



    우선 리소스 파일을 만들어야 하는데 델파이는 변변한 리소스 에디터를



    제공하지 않습니다. 있어봤자 이미지 에디터 정도겠지요...



    그렇지만 리소스 컴파일러는 제공합니다. brcc32.exe라는 프로그램이죠.



    그래서 .RC파일을 직접 만들어서 컴파일 하여야 합니다.



    우선 빈 텍스트 파일을 하나 만들어서 다음의 한 줄을 써 넣습니다.



    resname 24 DISCARDABLE "JPEGfilename.jpg"



    resname에는 사용하기 원하는 리소스 이름을 넣으시고 JPEGfilename.jpg에는



    리소스로 만들 파일의 풀패스명을 적어 주면 됩니다.



    리소스 파일이 여러개라면 갯수만큼 위의 내용을 추가해 주시면 됩니다.



    24라는 숫자는 리소스 타입의 ID인데 JPEG는 예약된 리소스 타입이 없으므로



    예약된 숫자 + 1로 정한 것입니다. 24이상이면 어떤 수이거나 상관 없는데



    아래 소스의 MakeIntResource내의 인자와 일치해야 합니다.



    여튼 이렇게 만드신 후 확장자를 .rc로 해서 저장합니다. 편의상 MyRes.rc라고



    한다면 커맨드 라인에서 brcc32.exe MyRes.rc라고 치면 MyRes.res파일이 만들어



    집니다.



    그런 후 이제 이 리소스 파일을 프로그램에 추가하여야겠지요.



    프로젝트의 소스를 여시면 {$R *.res}라고 적힌 부분이 있을 겁니다.



    그 밑에 {$R MyRes.res}라고 추가합니다. 여기서 MyRes.res는 brcc32로 만들어진



    리소스 파일 이름입니다.



    이렇게 하셔서 컴파일 하시면 우선 리소스는 실행파일에 포함된 겁니다.



    다음으로...



    리소스에서 JPEG image를 읽어서 TImage 콤포넌트로 출력을 하려면



    다음과 같은 코드를 출력하고자 하는 부분에 넣어 주시면 됩니다.



    TGraphic에는 리소스에서 직접 데이터를 읽어오는 방법을 지원하지



    않으므로 스트림을 이용하셔야 합니다.



    편의상 버튼 클릭 이벤트에서 하는 것으로 하겠습니다. 아래는 소스입니다.



    procedure TForm1.Button1Click(Sender: TObject);

    var

    ResStream : TResourceStream;

    JPEGImage : TJPEGImage;

    begin

    JPEGImage := TJPEGImage.Create;

    ResStream := TResourceStream.Create(hInstance, 'resname',

    MakeIntResource(24));

    try

    JPEGImage.LoadFromStream(ResStream);

    Image1.Picture.Assign(JPEGImage);

    finally

    ResStream.Free;

    JPEGImage.Free;

    end;

    end;



    TJPEGImage를 사용하므로 uses절에 jpeg를 추가하셔야 합니다.



    소스 중 TResourceStream.Create에 있는 resname에다가 위의 .rc파일에서



    지정한 리소스이름을 적어 주시면 됩니다.



    소스가 간단하므로 쉽게 이해가 가실겁니다.



    이렇게 하시면 jpeg파일이 실행파일과 합쳐져 출력됩니다.



    참고가 되셨으면 합니다.



    그럼 이만...