2010-12-11 21 views

Antwort

1

Dieser Code kann man

 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(); 

hilft Dieser Byte-Array von Ihrer Web-Service-URL zu generieren. Hier ist bb Byte-Array.

Es gibt zwei Klassen, die Bilder in BB verarbeiten. EncodedImage und Bitmap, beide haben Konstruktoren, die Bild aus Byte-Array generieren. Ich empfehle Bitmap zu verwenden, es hat eine einfache Bildwiedergabefähigkeit.

+0

Vielen Dank ... ich werde sicherlich die Lösung ausprobieren – user469999

3

Ich bin nicht ganz vertraut mit BB entweder aber da niemand sonst Ihre Frage beantwortet, überprüfen Sie die EncodedImage-Klasse und ihre Methode scaleImage32() sollte Ihnen die skalierte Version zurückgeben.

+0

Danke für die Antwort..ich werde es sicherlich überprüfen :) – user469999

+0

+1 und Daumen hoch @potteri für Vorschlag – Prasham

5

petteri hat Recht mit EncodedImage und scaleImage32(). Insbesondere möchten Sie createEncodedImage(byte[] data, int offset, int length) mit den vom Webservice zurückgegebenen Bytes verwenden.

Beachten Sie, dass scaleImage32 'int' Argumente verwendet, aber im Gegensatz zu den bekannteren Fließkommazahlen sind sie Festkommazahlen. Um den gewünschten Festkommawert zu erhalten, verwenden Sie die Hilfsmethoden in Fixed32

Schließlich, wenn Sie das Originalbild in der BlackBerry-Anwendung nicht benötigen, haben Sie eine bessere allgemeine Erfahrung, wenn der Webservice die Skalierung durchführt. Dies reduziert die Anzahl der an das Gerät übertragenen Bytes und reduziert die auf dem Gerät durchgeführte Berechnung zur Skalierung des Bildes. Die Skalierung auf dem Server wird wahrscheinlich auch zu einem skalierten Bild mit höherer Qualität führen, da scaleImage32() einen relativ einfachen Algorithmus verwendet.

+1

Nur um Michaels Antwort hinzuzufügen, wenn Sie können nicht auf dem Server skalieren und müssen es in dem Gerät tun, können Sie 5.0 APIs verwenden, um bessere Qualität Skalierung mit Bitmap.scaleInto() –

+0

Vielen Dank ... Ich werde sicherlich die Lösung ausprobieren – user469999