Kindly Help me in my problem . Thanks a lot :)
public Image ResizeImage(Image image,int resizedimageWidth,intresizedHeight){
int[] in = null;
int[] out = null;
int imageWidth = image.getWidth();
int imageHeight = image.getHeight();
in = new int[imageWidth];
int dy, dx;
out = new int[resizedimageWidth * resizedHeight];
for (int y = 0; y < resizedHeight; y++) {
dy = y * imageHeight / resizedHeight;
image.getRGB(in, 0, imageWidth, 0, dy, imageWidth, 1);
for (int x = 0; x < resizedimageWidth; x++) {
dx = x * imageWidth / resizedimageWidth;
out[(resizedimageWidth * y) + x] = in[dx];
}
}
Image resized = Image.createRGBImage(out, resizedimageWidth, resizedHeight, true);
saveResizedImage(resized.toString().getBytes());
return resized;
}
private void saveResizedImage(byte[] bytes) {
try {
FileConnection fileConnection = (FileConnection) Connector.open(Utility.getMigoMobileDir() + StringConstants.USERS + StringConstants.SEPERATOR
+ userID + StringConstants.POSTFIX_PNG, Connector.READ_WRITE);
if (fileConnection.exists()) {
fileConnection.delete();
}
fileConnection.create();
OutputStream oS = fileConnection.openOutputStream();
oS.write(bytes);
oS.flush();
oS.close();
fileConnection.close();
fileConnection = null;
oS = null;
} catch (IOException e) {
e.printStackTrace();
Utility.exception("[capture] " + e.toString());
} catch (Exception e) {
Utility.exception("[capture] " + e.toString());
}
}
This code above is use to edit(ResizeImage) and save(saveResizedImage) image inside the folder but the output is empty picture.
your problem is with the following line
the toString of an object is just a meaningless representation and not the actual data, you should find a way to convert the int[] of the resized image to byte[] and save it.