2010-12-11 7 views

답변

1

이 코드는

 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에서 이미지를 처리하는 데는 두 가지 클래스가 있습니다. EncodedImageBitmap에는 모두 바이트 배열에서 이미지를 생성하는 생성자가 있습니다. 비트 맵을 사용하는 것이 좋으며 이미지 크기가 쉽게 조정할 수 있습니다.

+0

덕분에 많은 – user469999

3

BB에 익숙하지 않은데 아무도 질문에 대답하지 않아 EncodedImage 클래스를 확인한 다음 scaleImage32() 메서드를 사용하여 크기 조정 된 버전을 반환해야합니다.

+0

덕분에 확실히 경우, 그냥 마이클의 반응에 추가 내가 확실히 솔루션 – user469999

+0

1과 엄지 손가락을 그것을 확인합니다 당신은 서버에서 확장 할 수없고 장치에서해야합니다, 당신은 Bitmap.scaleInto() – Prasham

5

petteri가 EncodedImage 및 scaleImage32()를 사용하는 것이 좋습니다. 특히 createEncodedImage(byte[] data, int offset, int length)을 웹 서비스가 반환 한 바이트와 함께 사용하려고합니다.

scaleImage32는 'int'인수를 사용하지만 더 널리 알려진 부동 소수점 수와 달리 고정 소수점 숫자라는 점에 유의하십시오. 원하는 고정 소수점 값을 얻으려면 유틸리티 메서드를 사용하십시오. Fixed32

마지막으로 BlackBerry 응용 프로그램에서 원본 이미지가 필요하지 않은 경우 웹 서비스가 크기 조정을 수행하면 전반적인 사용 환경이 향상됩니다. 이렇게하면 장치로 전송되는 바이트 수를 줄일 수 있으며 이미지 크기를 조정하기 위해 장치에서 수행 된 계산이 줄어 듭니다. scaleImage32()는 상당히 기본적인 알고리즘을 사용하기 때문에 서버의 크기를 조정하면 이미지의 크기가 더 높아질 수 있습니다. reply..i에 대한

+1

을하려고합니다 ... 제안을 위해 @petteri : –

+0

을 사용하여 더 나은 품질의 스케일링을 할 수있는 5.0 API를 사용할 수 있습니다 ... 많이 고마워요. 나는 분명히 해결책을 시험해 볼 것입니다. – user469999