Je voulais savoir si il est possible de redimensionner une image. Supposons que si nous voulons dessiner une image de 200 x 200 taille réelle avec une taille de 100 x 100 taille sur nos blackberry écran.
Vous pouvez le faire assez simplement à l'aide de la EncodedImage.scaleImage32() méthode. Vous aurez besoin de fournir les facteurs qui vous tiens à l'échelle de la largeur et de la hauteur (comme un Fixed32).
Voici un exemple de code qui détermine le facteur d'échelle pour la largeur et la hauteur en divisant la taille originale de l'image par la taille désirée, à l'aide de RIM Fixed32 classe.
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 vous êtes assez chanceux pour être développeur pour OS 5.0, Marc posté un lien vers le de nouvelles Api qui sont beaucoup plus claires et plus polyvalente que celle que j'ai décrite ci-dessus. Par exemple:
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;
}
(Naturellement, vous pouvez remplacer le filtre/mise à l'échelle des options en fonction de vos besoins.)
J'ai exactement la même fonction dans le code du travail dès maintenant. Êtes-vous convertir le ints à Fixed32 et à l'aide de Fixed32.div() de comprendre les facteurs d'échelle? Normal division entière ne sera pas coupé. Merci, a l'aide de façon incorrecte. Pas en entier, mais toujours mal.
Gardez à l'esprit que l'image par défaut de mise à l'échelle effectuée par BlackBerry est très primitive et généralement ne semble pas très bon. Si vous êtes à la construction de 5.0 il y a un nouvelle API de faire beaucoup mieux échelle de l'image à l'aide de filtres, tels que bilinéaire ou Lanczos.
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;
}
suffit d'appeler cette méthode et maintenez cette dans une image bitmap en profiter.. scaleInto() pour Bitmap est disponible depuis OS 5.0. Oui, il a été depuis BlackBerry API 5.0.0
Ici est la fonction, ou vous pouvez dire la méthode de redimensionnement de l'image, de l'utiliser comme vous voulez :
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();
Je suis ce détachement des réponses pour les débutants dans Blackberry développement de l'Application. Code ci-dessous est pour le traitement des images Bitmap à partir de l'URL et de les redimensionner sans loass de Rapport d'Aspect :
La Méthode resizeImage est appelée à l'intérieur de la méthode imageFromServer(String url).
1) l'image de serveur sont traitées à l'aide de EncodedImage img.
2) Bitmap bitmp = resizeImage(img.getBitmap(), 100, 100);
les paramètres sont transmis à resizeImage() et la valeur de retour de resizeImage() est mis à Bitmap bitmp.
Seulement une alternative:
BlackBerry - dessiner une image sur l'écran
BlackBerry - image 3D transformer
OriginalL'auteur Maksym Gontar
Vous pouvez le faire assez simplement à l'aide de la
EncodedImage.scaleImage32()
méthode. Vous aurez besoin de fournir les facteurs qui vous tiens à l'échelle de la largeur et de la hauteur (comme unFixed32
).Voici un exemple de code qui détermine le facteur d'échelle pour la largeur et la hauteur en divisant la taille originale de l'image par la taille désirée, à l'aide de RIM
Fixed32
classe.Si vous êtes assez chanceux pour être développeur pour OS 5.0, Marc posté un lien vers le de nouvelles Api qui sont beaucoup plus claires et plus polyvalente que celle que j'ai décrite ci-dessus. Par exemple:
(Naturellement, vous pouvez remplacer le filtre/mise à l'échelle des options en fonction de vos besoins.)
int
s àFixed32
et à l'aide deFixed32.div()
de comprendre les facteurs d'échelle? Normal division entière ne sera pas coupé.Merci, a l'aide de façon incorrecte. Pas en entier, mais toujours mal.
OriginalL'auteur Skrud
Je ne suis pas un Blackberry programmeur, mais je crois que certains de ces liens pour vous aider:
Le Redimensionnement D'Image De L'Article
Le redimensionnement d'une image Bitmap sur le Blackberry
Blackberry Échelle De L'Image Question
OriginalL'auteur luvieere
Gardez à l'esprit que l'image par défaut de mise à l'échelle effectuée par BlackBerry est très primitive et généralement ne semble pas très bon. Si vous êtes à la construction de 5.0 il y a un nouvelle API de faire beaucoup mieux échelle de l'image à l'aide de filtres, tels que bilinéaire ou Lanczos.
OriginalL'auteur Marc Novakowski
Pour BlackBerry JDE 5.0 ou version ultérieure, vous pouvez utiliser le scaleInto API.
OriginalL'auteur Hermes
scaleInto() pour Bitmap est disponible depuis OS 5.0.
Oui, il a été depuis BlackBerry API 5.0.0
OriginalL'auteur iKushal
Ici est la fonction, ou vous pouvez dire la méthode de redimensionnement de l'image, de l'utiliser comme vous voulez :
OriginalL'auteur Himanshu Sharma
Je suis ce détachement des réponses pour les débutants dans Blackberry développement de l'Application. Code ci-dessous est pour le traitement des images Bitmap à partir de l'URL et de les redimensionner sans loass de Rapport d'Aspect :
La Méthode resizeImage est appelée à l'intérieur de la méthode imageFromServer(String url).
1) l'image de serveur sont traitées à l'aide de EncodedImage img.
2) Bitmap bitmp = resizeImage(img.getBitmap(), 100, 100);
les paramètres sont transmis à resizeImage() et la valeur de retour de resizeImage() est mis à Bitmap bitmp.
OriginalL'auteur Alvin