TImage 구성 요소를 사용하여 Stream에 이미지 저장
1892 단어 TImage
TImage의 소스, Picture를 보세요.Graphic 다음에는 loadfrom Stream과 Saveto Stream이 있습니다.만약 틀리지 않았다면, 직접 이 두 함수를 쓰면 된다.그래서 데모 테스트를 했어요.
데모에 티마지 두 개 넣었어요.TImage1에 그림을 넣은 다음 코드로 TImage1의 그림을 Stream에 저장합니다.TImage2 이 Stream에서 그림을 다시 꺼냅니다.자연수가 도랑으로 흐르다.
이것이 바로 나의 코드다.
PicStream:=TMemoryStream.Create;
Self.Image1.Picture.Graphic.SaveToStream(PicStream);
PicStream.Position:=0;
Self.Image2.Picture.Graphic.loadFromStream(PicStream);
PicStream.Free;
그러나 사실 그는 잘못을 저질렀다.그래서 나는 바이두를 하고 또 바이두를 만들었다.얻은 결과도 이렇게 썼다.(나는 왜 인터넷에 문제가 있는 코드가 그렇게 많은지 모르겠다. 버전이 다른 이유인가)그래서 나는 그의 TPicture를 미행했다.Assign은 TPicture를 직접 사용하면Assign 복제 Timage1은 오류가 없습니다.
procedure TPicture.Assign(Source: TPersistent);
begin
if Source = nil then
SetGraphic(nil)
else if Source is TPicture then
SetGraphic(TPicture(Source).Graphic)
else if Source is TGraphic then
SetGraphic(TGraphic(Source))
else
inherited Assign(Source);
end;
원래 그는 Assign을 호출할 때 SetGraphic을 호출해서 TGraphic 대상을 만듭니다.그래서 만약 내가 그래픽을 사용하고 싶다면.loadFromStream이라는 함수는 이 TGraphic 대상을 직접 만들어야 합니다.안 그러면 틀림없이 틀린 거야.그리고 이 TGraphic은 서로 다른 그림 형식에 따라 다른 ClassType을 호출해서 만들어야 합니다.좀 귀찮아졌어요.저는 TJPEGimage의 대상을 사용해서 그의 LoadFrom Stream을 호출하면 Stream을 직접 읽을 수 있기 때문에 게으름을 피웠어요.
Jpg:=TJPEGImage.Create;
PicStream:=TMemoryStream.Create;
Self.Image1.Picture.Graphic.SaveToStream(PicStream);
PicStream.Position:=0;
jpg.LoadFromStream(PicStream);
Self.Image2.Picture.Assign(JPg);
PicStream.Free;
본인은 책을 많이 읽지 않습니다.이 블로그는 이상하게 썼다.독자 여러분은 잠시만 기다려 주십시오.원래 이 블로그를 쓰고 싶지 않았어요.하지만 사이트의 코드를 보면 D10에서는 사용할 수 없습니다.그래서 망신을 당했어요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
c++ builder XE4, 10.2 Tokyo > TImage > 다른 크기의 TImage 위치 정렬 > 좌우 방향 센터/오른쪽 가장자리 정렬동작 확인 다음 파일이 있다고 가정합니다. 001_110x110.jpg : W110 x H110의 이미지 002_90x90.jpg : W90 x H90 이미지 양자를 세로로 늘어놓았을 때, 센터(정의:좌우의 중앙의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.