자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 안드로이드 플랫폼에서 jpg, png파일 포맷 사용하려면
2016.06.15 05:57
안녕하세요.
시애틀 버전사용하고 있습니다.
첫째,
VCL 어플리케이션이나 멀티 디바이스 어플리케이션 Win32 플랫폼에서 jpg, png 파일 포맷을 읽기 위해서는
uses에 vcl.imaging.jpeg를 추가하면 되는데
android 위와 같이 추가하고 사용하려면 Unit vcl.imaging.jpeg not found 라는 에러가 나옵니다.
어떻게 해야 하나요?
둘째,
1. 안드로이드 플랫폼에서 카메라로 이미지를 찍습니다.
2. 이미지로 컴포넌트에 로드 이미지를 Image.bitmap.savetoStream(IStream)하여 IStream변수(메모리스트림)에 저장합니다.
3. IStream변수에 저장된 스트림을 인디컴포넌트 Tcpclient로 다른 태블릿으로 전송합니다.
4. 스트림 사이즈를 체크하면 전송한 스트림의 사이즈가 정확히 전송되는 것 같습니다.
5. 전송받은 태블릿(갤탭)에서 Image.bitmap.LoadFromStream(AStream)하면 아무것도 나타나지 않습니다.
- 테스트를 위해 Image컴포넌트에 이미지를 하나 올려놓고 5번을 실행하면 기존 이미지는 지워지고 아무것도 나타나지 않습니다.
위의 2번 과정에서 IStream변수에 저장될 때 파일 포맷이 정해지는지? 5번 과정에서 필요한 작업이 있는지요?
답변 부탁드립니다.
댓글 2
Firemonkey 안드로이드 플랫폼에서 jpg, png파일 포맷 사용하려면
2016.06.15 05:57
안녕하세요.
시애틀 버전사용하고 있습니다.
첫째,
VCL 어플리케이션이나 멀티 디바이스 어플리케이션 Win32 플랫폼에서 jpg, png 파일 포맷을 읽기 위해서는
uses에 vcl.imaging.jpeg를 추가하면 되는데
android 위와 같이 추가하고 사용하려면 Unit vcl.imaging.jpeg not found 라는 에러가 나옵니다.
어떻게 해야 하나요?
둘째,
1. 안드로이드 플랫폼에서 카메라로 이미지를 찍습니다.
2. 이미지로 컴포넌트에 로드 이미지를 Image.bitmap.savetoStream(IStream)하여 IStream변수(메모리스트림)에 저장합니다.
3. IStream변수에 저장된 스트림을 인디컴포넌트 Tcpclient로 다른 태블릿으로 전송합니다.
4. 스트림 사이즈를 체크하면 전송한 스트림의 사이즈가 정확히 전송되는 것 같습니다.
5. 전송받은 태블릿(갤탭)에서 Image.bitmap.LoadFromStream(AStream)하면 아무것도 나타나지 않습니다.
- 테스트를 위해 Image컴포넌트에 이미지를 하나 올려놓고 5번을 실행하면 기존 이미지는 지워지고 아무것도 나타나지 않습니다.
위의 2번 과정에서 IStream변수에 저장될 때 파일 포맷이 정해지는지? 5번 과정에서 필요한 작업이 있는지요?
답변 부탁드립니다.
제가 보기에는 이슈가 발생할 수 있는 요인이 2가지인 것 같습니다.
1, 예상하신 대로 LoadFromStream으로 jpeg, bitmap 스트림을 불러오지 못하는 이슈
2, 인디로 데이터 전송 시 데이터가 누락되는 현상
1번의 경우
제가 경험한 바로는 문제되지 않습니다.
전송 방식은 앱테더링으로 다르지만 스트림을 전송 후 LoadFromStream으로 불러온 경우 전혀 문제가 되지 않았습니다.
다음 글을 참고해 보세요. http://tech.devgear.co.kr/delphi_news/406984
그리고, 전송기능을 제외하고 다른 폼(또는 유닛)으로 스트림을 보내고 로드해서 확인해보시기 바랍니다.
2번의 경우
TCP/IP를 통해 전송 시 일부 데이터가 누락되었다면 이미지가 표시되지 않을 수도 있을 것 같네요.
다시한번 찬찬히 살펴보시고 결과 답변 부탁드립니다.