BlackBerry 응용 프로그램은 웹 서비스에서 이미지를 가져 와서 이미지를 미리보기 이미지로 표시해야합니다. 아무도 나에게 이것을 달성하는 방법에 대한 아이디어를 줄 수 있습니까?BlackBerry에서 배율 조정 된 이미지 표시
답변
이 코드는
connection = (HttpConnection) Connector.open(fullUrl.toString(),
Connector.READ_WRITE, true);
InputStream is = hc.openInputStream();
DataInputStream dis = new DataInputStream(is);
ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
int ch;
while ((ch = dis.read()) != -1) {
// System.out.println((char) ch);
// msg = msg + (char) ch;
bStrm.write(ch);
}
bb = bStrm.toByteArray();
이 웹 서비스 URL에서 바이트 배열을 생성 할 수 있습니다. 여기 bb
은 바이트 배열입니다.
BB에서 이미지를 처리하는 데는 두 가지 클래스가 있습니다. EncodedImage
및 Bitmap
에는 모두 바이트 배열에서 이미지를 생성하는 생성자가 있습니다. 비트 맵을 사용하는 것이 좋으며 이미지 크기가 쉽게 조정할 수 있습니다.
BB에 익숙하지 않은데 아무도 질문에 대답하지 않아 EncodedImage 클래스를 확인한 다음 scaleImage32() 메서드를 사용하여 크기 조정 된 버전을 반환해야합니다.
덕분에 확실히 경우, 그냥 마이클의 반응에 추가 내가 확실히 솔루션 – user469999
1과 엄지 손가락을 그것을 확인합니다 당신은 서버에서 확장 할 수없고 장치에서해야합니다, 당신은 Bitmap.scaleInto() – Prasham
petteri가 EncodedImage 및 scaleImage32()를 사용하는 것이 좋습니다. 특히 createEncodedImage(byte[] data, int offset, int length)
을 웹 서비스가 반환 한 바이트와 함께 사용하려고합니다.
scaleImage32는 'int'인수를 사용하지만 더 널리 알려진 부동 소수점 수와 달리 고정 소수점 숫자라는 점에 유의하십시오. 원하는 고정 소수점 값을 얻으려면 유틸리티 메서드를 사용하십시오. Fixed32
마지막으로 BlackBerry 응용 프로그램에서 원본 이미지가 필요하지 않은 경우 웹 서비스가 크기 조정을 수행하면 전반적인 사용 환경이 향상됩니다. 이렇게하면 장치로 전송되는 바이트 수를 줄일 수 있으며 이미지 크기를 조정하기 위해 장치에서 수행 된 계산이 줄어 듭니다. scaleImage32()는 상당히 기본적인 알고리즘을 사용하기 때문에 서버의 크기를 조정하면 이미지의 크기가 더 높아질 수 있습니다. reply..i에 대한
을하려고합니다 ... 제안을 위해 @petteri : –
을 사용하여 더 나은 품질의 스케일링을 할 수있는 5.0 API를 사용할 수 있습니다 ... 많이 고마워요. 나는 분명히 해결책을 시험해 볼 것입니다. – user469999
덕분에 많은 – user469999