Blackberry: ¿cómo cambiar el tamaño de la imagen?

Quería saber si podemos cambiar el tamaño de una imagen. Supongamos que queremos dibujar una imagen de tamaño real de 200×200 con un tamaño de 100 x 100 en nuestra pantalla de Blackberry.

Gracias

Solo una alternativa:
BlackBerry: dibuja una imagen en la pantalla
BlackBerry – transformada 3D de imagen

Puedes hacer esto simplemente usando el método EncodedImage.scaleImage32() . Deberá proporcionarle los factores por los cuales desea escalar el ancho y el alto (como Fixed32 ).

Aquí hay un código de muestra que determina el factor de escala para el ancho y la altura dividiendo el tamaño de la imagen original por el tamaño deseado, utilizando la clase Fixed32 de RIM.

 public static EncodedImage resizeImage(EncodedImage image, int newWidth, int newHeight) { int scaleFactorX = Fixed32.div(Fixed32.toFP(image.getWidth()), Fixed32.toFP(newWidth)); int scaleFactorY = Fixed32.div(Fixed32.toFP(image.getHeight()), Fixed32.toFP(newHeight)); return image.scaleImage32(scaleFactorX, scaleFactorY); } 

Si tienes la suerte de ser desarrollador para OS 5.0, Marc publicó un enlace a las nuevas API que son mucho más claras y más versátiles que la que describí anteriormente. Por ejemplo:

 public static Bitmap resizeImage(Bitmap originalImage, int newWidth, int newHeight) { Bitmap newImage = new Bitmap(newWidth, newHeight); originalImage.scaleInto(newImage, Bitmap.FILTER_BILINEAR, Bitmap.SCALE_TO_FILL); return newImage; } 

(Naturalmente, puede sustituir las opciones de filtro / escala según sus necesidades).

No soy progtwigdor de Blackberry, pero creo que algunos de estos enlaces te ayudarán:

Artículo de cambio de tamaño de la imagen
Cambiar el tamaño de un bitmap en Blackberry
Pregunta de escala de imagen de Blackberry

Tenga en cuenta que la escala de imagen predeterminada hecha por BlackBerry es bastante primitiva y, en general, no se ve muy bien. Si está comstackndo para 5.0, hay una nueva API para hacer una escala de imagen mucho mejor usando filtros como bilineal o Lanczos.

Para BlackBerry JDE 5.0 o posterior, puede usar la API scaleInto .

 in this there is two bitmap.temp is holding the old bitmap.In this method you just pass bitmap ,width,height.it return new bitmap of your choice. Bitmap ImgResizer(Bitmap bitmap , int width , int height){ Bitmap temp=new Bitmap(width,height); Bitmap resized_Bitmap = bitmap; temp.createAlpha(Bitmap.HOURGLASS); resized_Bitmap.scaleInto(temp , Bitmap.FILTER_LANCZOS); return temp; } 

Aquí está la función o puedes decir el método para cambiar el tamaño de la imagen, úsala como quieras:

 int olddWidth; int olddHeight; int dispplayWidth; int dispplayHeight; EncodedImage ei2 = EncodedImage.getEncodedImageResource("add2.png"); olddWidth = ei2.getWidth(); olddHeight = ei2.getHeight(); dispplayWidth = 40;\\here pass the width u want in pixels dispplayHeight = 80;\\here pass the height u want in pixels again int numeerator = net.rim.device.api.math.Fixed32.toFP(olddWidth); int denoominator = net.rim.device.api.math.Fixed32.toFP(dispplayWidth); int widtthScale = net.rim.device.api.math.Fixed32.div(numeerator, denoominator); numeerator = net.rim.device.api.math.Fixed32.toFP(olddHeight); denoominator = net.rim.device.api.math.Fixed32.toFP(dispplayHeight); int heighhtScale = net.rim.device.api.math.Fixed32.div(numeerator, denoominator); EncodedImage newEi2 = ei2.scaleImage32(widtthScale, heighhtScale); Bitmap _add =newEi2.getBitmap(); 

Estoy publicando estas respuestas para novatos en el desarrollo de aplicaciones Blackberry. A continuación, el código es para procesar imágenes de bitmap desde URL y cambiar su tamaño sin tener en cuenta la relación de aspecto:

  public static Bitmap imageFromServer(String url) { Bitmap bitmp = null; try{ HttpConnection fcon = (HttpConnection)Connector.open(url); int rc = fcon.getResponseCode(); if(rc!=HttpConnection.HTTP_OK) { throw new IOException("Http Response Code : " + rc); } InputStream httpInput = fcon.openDataInputStream(); InputStream inp = httpInput; byte[] b = IOUtilities.streamToBytes(inp); EncodedImage img = EncodedImage.createEncodedImage(b, 0, b.length); bitmp = resizeImage(img.getBitmap(), 100, 100); } catch(Exception e) { Dialog.alert("Exception : " + e.getMessage()); } return bitmp; } public static Bitmap resizeImage(Bitmap originalImg, int newWidth, int newHeight) { Bitmap scaledImage = new Bitmap(newWidth, newHeight); originalImg.scaleInto(scaledImage, Bitmap.FILTER_BILINEAR, Bitmap.SCALE_TO_FIT); return scaledImage; } 

El método resizeImage se llama dentro del método imageFromServer (String url). 1) la imagen del servidor se procesa utilizando EncodedImage img. 2) Bitmap bitmp = resizeImage (img.getBitmap (), 100, 100); los parámetros se pasan a resizeImage () y el valor de retorno de resizeImage () se establece en Bitmap bitmp.