Q&A

  • 소켓으로 들어온 jpeg를 화면에 보여주는 방법...
안녕하세요.

이제 델파이 시작했습니다.



소켓으로 받은 데이터는 string으로 처리가 되어 있습니다.

그래서 현재는 이걸 다시 화일로 만든 후 image control에다가 뿌려주었습니다.



구현하고 싶은 방법은 이걸 하드에 저장하지 않고 처리하기를 원합니다.

아무리 찾아봐도 string을 TStream이나 jpeg 데이터로 바꿔서 load하는

방법을 못 찾겠습니다.



고수님의 답변 부탁드립니다.

4  COMMENTS
  • Profile
    최용일 2000.06.22 10:37
    안녕하세요. 최용일입니다.



    TStream은 추상객체이므로 이 객체에서 파생된 객체를 사용하세요. 스트림객체에



    보시면 Read... / Write...로 시작되는 메소드들이 있습니다. 이 메소드들을 이용하여



    스트림에 읽고 씁니다. Write...메소드들을 이용해서 스트림에 쓴 후에 TJpeg객체의



    LoadFromStream메소드를 이용해서 스트림에서 이미지를 불러오시면 됩니다.



    ^^ 항상 즐코하세요.



    초보맨 wrote:

    > 안녕하세요.

    > 이제 델파이 시작했습니다.

    >

    > 소켓으로 받은 데이터는 string으로 처리가 되어 있습니다.

    > 그래서 현재는 이걸 다시 화일로 만든 후 image control에다가 뿌려주었습니다.

    >

    > 구현하고 싶은 방법은 이걸 하드에 저장하지 않고 처리하기를 원합니다.

    > 아무리 찾아봐도 string을 TStream이나 jpeg 데이터로 바꿔서 load하는

    > 방법을 못 찾겠습니다.

    >

    > 고수님의 답변 부탁드립니다.

  • Profile
    초보맨 2000.06.22 11:19
    답변 감사드립니다.



    그런데...제가 머리가 나빠서 인지 잘 모르겠습니다.

    예를 들어 Jpeg그림 한장의 데이터가 들어있는 String 변수가 하나 있다고 가정하고,

    간단히 이 부분의 코딩만 적어 주시면 안될까요?



    다시 한 번 답변을 부탁드립니다.

    감사합니다.



    최용일 wrote:

    > 안녕하세요. 최용일입니다.

    >

    > TStream은 추상객체이므로 이 객체에서 파생된 객체를 사용하세요. 스트림객체에

    >

    > 보시면 Read... / Write...로 시작되는 메소드들이 있습니다. 이 메소드들을 이용하여

    >

    > 스트림에 읽고 씁니다. Write...메소드들을 이용해서 스트림에 쓴 후에 TJpeg객체의

    >

    > LoadFromStream메소드를 이용해서 스트림에서 이미지를 불러오시면 됩니다.

    >

    > ^^ 항상 즐코하세요.



  • Profile
    최용일 2000.06.22 11:35
    안녕하세요. 최용일입니다.



    예제입니다.



    var

    Stream: TMemoryStream;

    S: string;

    Jpg: TJpegImage;

    begin

    Stream := TMemoryStream.Create;

    Stream.Write(S[1], Length(S));



    Jpg := TJpegImage.Create;

    Jpg.LoadFromStream(Stream);



    ...

    // Jpeg이미지를 사용...



    Jpg.Free;

    Stream.Free;

    end;



    ^^ 항상 즐코하세요.



    초보맨 wrote:

    > 답변 감사드립니다.

    >

    > 그런데...제가 머리가 나빠서 인지 잘 모르겠습니다.

    > 예를 들어 Jpeg그림 한장의 데이터가 들어있는 String 변수가 하나 있다고 가정하고,

    > 간단히 이 부분의 코딩만 적어 주시면 안될까요?

    >

    > 다시 한 번 답변을 부탁드립니다.

    > 감사합니다.

    >

    > 최용일 wrote:

    > > 안녕하세요. 최용일입니다.

    > >

    > > TStream은 추상객체이므로 이 객체에서 파생된 객체를 사용하세요. 스트림객체에

    > >

    > > 보시면 Read... / Write...로 시작되는 메소드들이 있습니다. 이 메소드들을 이용하여

    > >

    > > 스트림에 읽고 씁니다. Write...메소드들을 이용해서 스트림에 쓴 후에 TJpeg객체의

    > >

    > > LoadFromStream메소드를 이용해서 스트림에서 이미지를 불러오시면 됩니다.

    > >

    > > ^^ 항상 즐코하세요.

    >

  • Profile
    최용일 2000.06.22 11:30
    안녕하세요. 최용일입니다.



    리스트박스의 데이터를 스트림을 이용해서 또 다른 리스트박스로 전송하는 예제입니다.



    var

    Stream: TMemoryStream;

    S1, S2: string;

    begin

    Stream := TMemoryStream.Create;



    S1 := ListBox1.Items.Text;

    Stream.Write(S1[1], Length(S1)); // ListBox1의 내용을 스트림에 저장



    Stream.Position := 0;

    SetLength(S2, Stream.Size);

    Stream.Read(S2[1], Stream.Size); // 스트림에서 내용을 읽어와

    ListBox2.Items.Text := S2; // ListBox2에 넣는다.



    Stream.Free;

    end;



    ^^ 항상 즐코하세요.



    초보맨 wrote:

    > 답변 감사드립니다.

    >

    > 그런데...제가 머리가 나빠서 인지 잘 모르겠습니다.

    > 예를 들어 Jpeg그림 한장의 데이터가 들어있는 String 변수가 하나 있다고 가정하고,

    > 간단히 이 부분의 코딩만 적어 주시면 안될까요?

    >

    > 다시 한 번 답변을 부탁드립니다.

    > 감사합니다.

    >

    > 최용일 wrote:

    > > 안녕하세요. 최용일입니다.

    > >

    > > TStream은 추상객체이므로 이 객체에서 파생된 객체를 사용하세요. 스트림객체에

    > >

    > > 보시면 Read... / Write...로 시작되는 메소드들이 있습니다. 이 메소드들을 이용하여

    > >

    > > 스트림에 읽고 씁니다. Write...메소드들을 이용해서 스트림에 쓴 후에 TJpeg객체의

    > >

    > > LoadFromStream메소드를 이용해서 스트림에서 이미지를 불러오시면 됩니다.

    > >

    > > ^^ 항상 즐코하세요.

    >