1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | public PictureCallback jpegCallback = new PictureCallback(){ @Override public void onPictureTaken(byte[] data, Camera camera) { // TODO Auto-generated method stub FileOutputStream fos = null; try { String file = android.os.Environment.getExternalStorageDirectory() + "/" + System.currentTimeMillis(); fos = new FileOutputStream(file + ".jpg"); fos.write(data); fos.flush(); fos.close(); Bitmap jpg = BitmapFactory.decodeFile(file + ".jpg"); Bitmap bmp = Bitmap.createBitmap(camera.getParameters().getPreviewSize().width, camera.getParameters().getPreviewSize().height, Config.ARGB_8888); Paint p = new Paint(); p.setColor(Color.YELLOW); Canvas canvas = new Canvas(bmp); canvas.drawBitmap(jpg, 0, 0, null); canvas.drawCircle(camera.getParameters().getPreviewSize().width / 2, camera.getParameters().getPreviewSize().height / 2, 20 , p); //canvas.drawLine(0, 0, 50, 50, new Paint()); canvas.save(); FileOutputStream os = new FileOutputStream(file + ".new.jpg"); bmp.compress(CompressFormat.JPEG, 90, os); os.flush(); os.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}; |
Direct link: https://paste.plurk.com/show/554773