图片缩放:
public static Drawable resizeImage(Drawable d, int w, int h) { // load the origial Bitmap Bitmap BitmapOrg = ((BitmapDrawable) d).getBitmap(); int width = BitmapOrg.getWidth(); int height = BitmapOrg.getHeight(); int newWidth = w; int newHeight = h; // calculate the scale float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // create a matrix for the manipulation Matrix matrix = new Matrix(); // resize the Bitmap matrix.postScale(scaleWidth, scaleHeight); Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width, height, matrix, true); // make a Drawable from Bitmap to allow to set the Bitmap // to the ImageView, ImageButton or what ever return new BitmapDrawable(resizedBitmap); }
public static Drawable resizeImage(Bitmap bitmap, int w, int h) { // load the origial Bitmap Bitmap BitmapOrg = bitmap; int width = BitmapOrg.getWidth(); int height = BitmapOrg.getHeight(); int newWidth = w; int newHeight = h; // calculate the scale float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // create a matrix for the manipulation Matrix matrix = new Matrix(); // resize the Bitmap matrix.postScale(scaleWidth, scaleHeight); // if you want to rotate the Bitmap // matrix.postRotate(45); // recreate the new Bitmap Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width, height, matrix, true); // make a Drawable from Bitmap to allow to set the Bitmap // to the ImageView, ImageButton or what ever return new BitmapDrawable(resizedBitmap); }
图片写字:
/** * 图片上画字 * */ private Bitmap drawTextAtBitmap(Bitmap bitmap,String text){ int x = bitmap.getWidth(); int y = bitmap.getHeight(); // 创建一个和原图同样大小的位图 Bitmap newbit = Bitmap.createBitmap(x, y, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(newbit); Paint paint = new Paint(); // 在原始位置0,0插入原图 canvas.drawBitmap(bitmap, 0, 0, paint); paint.setColor(Color.parseColor("#dedbde")); paint.setTextSize(20); // 在原图指定位置写上字 canvas.drawText(text, 53 , 30, paint); canvas.save(Canvas.ALL_SAVE_FLAG); // 存储 canvas.restore(); return newbit; }