자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey MemoryStream 문의입니다
2015.09.08 09:39
IdFTP를 이용하여 서버에 파일전송을위해 이미지를 가지고 테스트를 하고있는데
파일 용량이 증가하는 상황이 발생하여 소스를 살펴보니
MemoryStream으로 변환시 이미지의 비트가 변동되는 상황이 발생합니다
예를들어 24비트의 이미지가 32비트로 변경되어
3MB정도 되는 이미지가 15MB로 증가합니다.
코드는 간단합니다.
Image컴포넌트에 이미지를 넣어놓고
var
Strame : TMemoryStream;
begin
Strame := TMemoryStream.Create;
Image1.Bitmap.SaveToStream(Stream);
Strame.Position := 0;
Strame.SaveToFile('C:\test123.jpg');
end;
Stream으로 변환시 비트수준을 지정할수 있을까요?
아니면 원본 그대로 하는 방법이 있을까요?
24비트수준인 이미지 첨부해 드리겠습니다.
댓글 2
-
최민철
2015.09.08 13:41
추천:1 댓글
-
superman
2016.06.16 04:54
최민철님 안녕하세요.
저도 비슷한 문제를 겪고 있는데 helper를 이용하여 SaveToStream할 때 확장자를 원하는 포맷으로 변경하는 방법을 알려주시면 감사하겠습니다.
에러가 생기는 내용을 요약하면 아래와 같습니다.
1. 이미지를 메모리스트림으로 저장한 후 다른 pc로 전송
2. 전송받은 스트림을 이미지컴포넌트에서 LoadfromStream으로 불러오면 화면에 아무것도 나타나지 않음
- win32환경에서는 잘 실행되나 안드로이드 환경에서 실행하면 아무것도 나타나지 않습니다.
감사합니다.
Firemonkey MemoryStream 문의입니다
2015.09.08 09:39
IdFTP를 이용하여 서버에 파일전송을위해 이미지를 가지고 테스트를 하고있는데
파일 용량이 증가하는 상황이 발생하여 소스를 살펴보니
MemoryStream으로 변환시 이미지의 비트가 변동되는 상황이 발생합니다
예를들어 24비트의 이미지가 32비트로 변경되어
3MB정도 되는 이미지가 15MB로 증가합니다.
코드는 간단합니다.
Image컴포넌트에 이미지를 넣어놓고
var
Strame : TMemoryStream;
begin
Strame := TMemoryStream.Create;
Image1.Bitmap.SaveToStream(Stream);
Strame.Position := 0;
Strame.SaveToFile('C:\test123.jpg');
end;
Stream으로 변환시 비트수준을 지정할수 있을까요?
아니면 원본 그대로 하는 방법이 있을까요?
24비트수준인 이미지 첨부해 드리겠습니다.
댓글 2
-
최민철
2015.09.08 13:41
추천:1 댓글
-
superman
2016.06.16 04:54
최민철님 안녕하세요.
저도 비슷한 문제를 겪고 있는데 helper를 이용하여 SaveToStream할 때 확장자를 원하는 포맷으로 변경하는 방법을 알려주시면 감사하겠습니다.
에러가 생기는 내용을 요약하면 아래와 같습니다.
1. 이미지를 메모리스트림으로 저장한 후 다른 pc로 전송
2. 전송받은 스트림을 이미지컴포넌트에서 LoadfromStream으로 불러오면 화면에 아무것도 나타나지 않음
- win32환경에서는 잘 실행되나 안드로이드 환경에서 실행하면 아무것도 나타나지 않습니다.
감사합니다.
자답입니다.
SaveToStream할때 기본확장자가 png로 되어서 그랬습니다.
helper를 이용하여 원하는 포멧으로 변경하게 추가하니 잘되네요...