J'utilise le code suivant pour redimensionner et enregistrer le fichier dans l'appareil BlackBerry. Après l'échelle de l'image, j'essaie d'écrire le fichier image dans l'appareil. Mais il donne les mêmes données. (La hauteur et la largeur de l'image sont les mêmes). Je dois faire un fichier d'image remis à neuf.Peut-on m'aider?Redimensionner l'image et écrire un fichier image remis à l'échelle dans blackberry
ResizeImage classe étend MainScreen implémente FieldChangeListener { chemin private String = "file: ///SDCard/BlackBerry/pictures/test.jpg"; private ButtonField btn; ResizeImage() { btn = nouveau ButtonField ("Écrire le fichier"); btn.setChangeListener (this); ajouter (btn); } public void fieldChanged (champ Champ, contexte int) { if (champ == BTN) {{ essayer
InputStream fluxEntrée = null; // Obtenir la connexion de fichier FileConnection fileConnection = (FileConnection) Connector.open (chemin); if (fileConnection.exists()) { inputStream = fileConnection.openInputStream(); // octet de données [] = inputStream.toString(). GetBytes();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int j = 0;
while((j=inputStream.read()) != -1) {
baos.write(j);
}
byte data[] = baos.toByteArray();
inputStream.close();
fileConnection.close();
WriteFile("file:///SDCard/BlackBerry/pictures/org_Image.jpg",data);
EncodedImage eImage = EncodedImage.createEncodedImage(data,0,data.length);
int scaleFactorX = Fixed32.div(Fixed32.toFP(eImage.getWidth()), Fixed32.toFP(80));
int scaleFactorY = Fixed32.div(Fixed32.toFP(eImage.getHeight()), Fixed32.toFP(80));
eImage=eImage.scaleImage32(scaleFactorX, scaleFactorY);
WriteFile("file:///SDCard/BlackBerry/pictures/resize.jpg",eImage.getData());
BitmapField bit=new BitmapField(eImage.getBitmap());
add(bit);
}
}
catch(Exception e)
{
System.out.println("Exception is ==> "+e.getMessage());
}
}
}
void WriteFile(String fileName,byte[] data)
{
FileConnection fconn = null;
try
{
fconn = (FileConnection) Connector.open(fileName,Connector.READ_WRITE);
}
catch (IOException e)
{
System.out.print("Error opening file");
}
if (fconn.exists())
try
{
fconn.delete();
}
catch (IOException e)
{
System.out.print("Error deleting file");
}
try
{
fconn.create();
}
catch (IOException e)
{
System.out.print("Error creating file");
}
OutputStream out = null;
try
{
out = fconn.openOutputStream();
}
catch (IOException e) {
System.out.print("Error opening output stream");
}
try
{
out.write(data);
}
catch (IOException e) {
System.out.print("Error writing to output stream");
}
try
{
fconn.close();
}
catch (IOException e) {
System.out.print("Error closing file");
}
}
}