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: android-developers@googlegroups.com [mailto:android-develop...@googlegroups.com] 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 android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---