I have not tried it myself, but looks like you can use Picture class.
E.g:
@Override protected void onDraw(Canvas canvas) {
FileInputStream in = null;
try {
in = new FileInputStream("myimage.jpg");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Bitmap bitmapOrg = BitmapFactory.decodeStream(in);
int wd = bitmapOrg.getWidth();
int hd = bitmapOrg.getHeight();
Picture newPicture = Picture.createFromStream(in);
Canvas newCanvas = newPicture.beginRecording(wd, hd);
newCanvas.drawBitmap(bitmapOrg, 0, 0, null);
newCanvas.drawBitmap(bitmapOrg, wd, 0, null);
newCanvas.drawBitmap(bitmapOrg, 0, hd, null);
newCanvas.drawBitmap(bitmapOrg, wd, hd, null);
newPicture.endRecording();
FileOutputStream fos = null;
try {
fos = new FileOutputStream("/sdcard/test.png");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
newPicture.writeToStream(fos);
BTW, since you are accessing in and fos outside of try blocks, the app
can throw NPE.
Sergey
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Protocol-X
Sent: Sunday, January 04, 2009 5:27 AM
To: Android Developers
Subject: [android-developers] Problem saving canvas to file
Ive been searching all ove on how to edit a image and save it. The
only way i have come accross other than just changing the size or
orientation is to use canvas. Now canvas works fine but i cannot seem
to save the newley created image.. the image always returns the
original image.
@Override protected void onDraw(Canvas canvas) {
FileInputStream in = null;
try {
in = new FileInputStream("myimage.jpg");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Bitmap bitmapOrg = BitmapFactory.decodeStream(in);
int wd = bitmapOrg.getWidth();
int hd = bitmapOrg.getHeight();
canvas.drawBitmap(bitmapOrg, 0, 0, null);
canvas.drawBitmap(bitmapOrg, wd, 0, null);
canvas.drawBitmap(bitmapOrg, 0, hd, null);
canvas.drawBitmap(bitmapOrg, wd, hd, null);
canvas.save();
FileOutputStream fos = null;
try {
fos = new
FileOutputStream("/sdcard/test.png");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
bitmapOrg.compress(Bitmap.CompressFormat.PNG,
50, fos);
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---