Q&A

  • 인디에서 스트림 전송
안녕하세요...

인디 컴포넌트에 대한 질문입니다.



인디 사이트에 가봐도 별 도움이 안되는군요...



다름이 아니라 인디에 포함된 스트리밍 전송에 대한 것을 연습하던 중에

안되는것이 있어 이렇게 질문을 올립니다.



소스 중에 TStringStream 부분을 TMemoryStream 으로 교체를 하고

클라이언트에서 요청을 하면 서버에서 bmp 파일을 불러

클라이언트로 스트림 전송을 합니다.



클라이언트 측에서 날라온 스트림을 저장하면 정상적으로 날라와온것을 알수 있습니다.

물론 파일 크기도 변동이 없습니다.



근데 이 스트림을 image1.picture.bitmap.loadfromstream() 을 하면

그림이 전혀 나타나지 않습니다.



물론 리플레쉬나 리페인트도 해보고 ImageEn 이라는 이미지 라이브러리도 사용을 해봤는데

역시 화면에 출력이 안됩니다.



왜 날라온것을 바로 Timage 에 넣으면 그림이 안나오는지 아시는 분은 도움을 좀 주시기바랍니다.



예제를 포함했으며 거의 기본 예제 그대롭니다.



아시는 분은 도움 좀 주세요..



--- 서버 측

AStream := TMemoryStream.Create;

AStream.LoadFromFile('c:x.bmp');

OpenWriteBuffer;

WriteStream(AStream);

CloseWriteBuffer;

AStream.Free;



--- 클라이언트 측

ReadStream(AStream, -1, True);

Image1.Picture.Bitmap.LoadFromStream(AStream);

image1.Repaint;

caption:=inttostr(AStream.Size);



만약 ASTream.SaveToFile() 을 하면 정상적으로 저장되고 파일 사이즈도 동일한데...

TImage의 LoadFromStream 부분에 문제(호환성?)가 있는것 같기도 하고....

3  COMMENTS
  • Profile
    정영민 2000.11.30 23:03
    내용 없다고 했잖아요?

  • Profile
    정영민 2000.11.28 18:12
    쩝~

    image1.picture.whdth 는 읽기전용 프로퍼티군요..

    아래 쓰신 글처럼하면 에러 뜹니다.

    그리고 image1.pisture.bitmap.width 해도 여전히 그림은 안나오구요..



    혹 해보셨나요? ( 트집 잡으려는게 아니라 해보셔서 정상 동작이 되는가 해서요..)



    난 왜 안되지...



    이경문 wrote:

    > 글쎄, 왜 그럴까요?

    > 클라이언트측에서

    > Image1.Picture.Width := 300;

    > Image1.Picture.Height := 240;

    > 해보신 다음 해 보시져...

    > Image1.Picture.Bitmap.LoadFromStream(AStream);

    >



  • Profile
    권영길 2000.11.29 01:33
    다른 방법이 없다면..

    받은 후에

    AStream.Position :=0;

    로 해주셔야 할 것 같군요.





    정영민 wrote:

    > 쩝~

    > image1.picture.whdth 는 읽기전용 프로퍼티군요..

    > 아래 쓰신 글처럼하면 에러 뜹니다.

    > 그리고 image1.pisture.bitmap.width 해도 여전히 그림은 안나오구요..

    >

    > 혹 해보셨나요? ( 트집 잡으려는게 아니라 해보셔서 정상 동작이 되는가 해서요..)

    >

    > 난 왜 안되지...

    >

    > 이경문 wrote:

    > > 글쎄, 왜 그럴까요?

    > > 클라이언트측에서

    > > Image1.Picture.Width := 300;

    > > Image1.Picture.Height := 240;

    > > 해보신 다음 해 보시져...

    > > Image1.Picture.Bitmap.LoadFromStream(AStream);

    > >

    >