List of usage examples for android.graphics Paint Paint
public Paint()
From source file:Main.java
public static Bitmap toRoundBitmap(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); float roundPx; float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom; if (width <= height) { roundPx = width / 2;/*www. jav a 2 s.c o m*/ top = 0; bottom = width; left = 0; right = width; height = width; dst_left = 0; dst_top = 0; dst_right = width; dst_bottom = width; } else { roundPx = height / 2; float clip = (width - height) / 2; left = clip; right = width - clip; top = 0; bottom = height; width = height; dst_left = 0; dst_top = 0; dst_right = height; dst_bottom = height; } Bitmap output = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect src = new Rect((int) left, (int) top, (int) right, (int) bottom); final Rect dst = new Rect((int) dst_left, (int) dst_top, (int) dst_right, (int) dst_bottom); final RectF rectF = new RectF(dst); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, src, dst, paint); if (bitmap != null && !bitmap.isRecycled()) { bitmap.recycle(); } return output; }
From source file:Main.java
public static Bitmap toRoundBitmap(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); float roundPx; float left, top, right, bottom, dst_left, dst_top, dst_right, dst_bottom; if (width <= height) { roundPx = width / 2;/*from www. ja v a 2s . c o m*/ top = 0; bottom = width; left = 0; right = width; height = width; dst_left = 0; dst_top = 0; dst_right = width; dst_bottom = width; } else { roundPx = height / 2; float clip = (width - height) / 2; left = clip; right = width - clip; top = 0; bottom = height; width = height; dst_left = 0; dst_top = 0; dst_right = height; dst_bottom = height; } Bitmap output = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect src = new Rect((int) left, (int) top, (int) right, (int) bottom); final Rect dst = new Rect((int) dst_left, (int) dst_top, (int) dst_right, (int) dst_bottom); final RectF rectF = new RectF(dst); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, src, dst, paint); return output; }
From source file:Main.java
public static Bitmap combineImagesToSameSize(Bitmap bgd, Bitmap fg) { Bitmap bmp;// w w w .ja va 2s. c om int width = bgd.getWidth() < fg.getWidth() ? bgd.getWidth() : fg.getWidth(); int height = bgd.getHeight() < fg.getHeight() ? bgd.getHeight() : fg.getHeight(); if (fg.getWidth() != width && fg.getHeight() != height) { fg = zoom(fg, width, height); } if (bgd.getWidth() != width && bgd.getHeight() != height) { bgd = zoom(bgd, width, height); } bmp = Bitmap.createBitmap(width, height, Config.ARGB_8888); Paint paint = new Paint(); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_ATOP)); Canvas canvas = new Canvas(bmp); canvas.drawBitmap(bgd, 0, 0, null); canvas.drawBitmap(fg, 0, 0, paint); return bmp; }
From source file:Main.java
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = bitmap.getWidth() / 2; paint.setAntiAlias(true);/*from w ww . j ava 2 s. c o m*/ canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; }
From source file:Main.java
/** * Gets the rounded corner bitmap./*from ww w. j av a 2 s . c o m*/ * * @param bitmap the bitmap * @return the rounded corner bitmap */ public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = 12; paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; }
From source file:Main.java
/** * Copy the red channel to a new Bitmap's alpha channel. The old * one will be recycled./*from www .j a v a 2 s. c o m*/ */ static Bitmap redToAlpha(Bitmap src, boolean recycle) { Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888); float[] matrix = new float[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 }; Paint paint = new Paint(); paint.setColorFilter(new ColorMatrixColorFilter(new ColorMatrix(matrix))); Canvas canvas = new Canvas(dest); canvas.setDensity(Bitmap.DENSITY_NONE); canvas.drawBitmap(src, 0, 0, paint); if (recycle) src.recycle(); return dest; }
From source file:Main.java
public static Drawable rotateBitmap(Bitmap inputBitmap) { Matrix matrix = new Matrix(); matrix.setRotate(90, (float) inputBitmap.getWidth() / 2, (float) inputBitmap.getHeight() / 2); float outputX = inputBitmap.getHeight(); float outputY = 0; final float[] values = new float[9]; matrix.getValues(values);/* w w w . j a v a2 s . c om*/ float x1 = values[Matrix.MTRANS_X]; float y1 = values[Matrix.MTRANS_Y]; matrix.postTranslate(outputX - x1, outputY - y1); Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap.getHeight(), inputBitmap.getWidth(), Bitmap.Config.ARGB_8888); Paint paint = new Paint(); Canvas canvas = new Canvas(outputBitmap); canvas.drawBitmap(inputBitmap, matrix, paint); return new BitmapDrawable(null, outputBitmap); }
From source file:Main.java
/** * Save jpeg image with background color * @param strFileName Save file path// w ww .j a v a 2 s.c o m * @param bitmap Input bitmap * @param nQuality Jpeg quality for saving * @param nBackgroundColor background color * @return whether success or not */ public static boolean saveBitmapJPEGWithBackgroundColor(String strFileName, Bitmap bitmap, int nQuality, int nBackgroundColor) { boolean bSuccess1 = false; boolean bSuccess2 = false; boolean bSuccess3; File saveFile = new File(strFileName); if (saveFile.exists()) { if (!saveFile.delete()) return false; } int nA = (nBackgroundColor >> 24) & 0xff; // If Background color alpha is 0, Background color substitutes as white if (nA == 0) nBackgroundColor = 0xFFFFFFFF; Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(newBitmap); canvas.drawColor(nBackgroundColor); canvas.drawBitmap(bitmap, rect, rect, new Paint()); // Quality limitation min/max if (nQuality < 10) nQuality = 10; else if (nQuality > 100) nQuality = 100; OutputStream out = null; try { bSuccess1 = saveFile.createNewFile(); } catch (IOException e1) { e1.printStackTrace(); } try { out = new FileOutputStream(saveFile); bSuccess2 = newBitmap.compress(CompressFormat.JPEG, nQuality, out); } catch (Exception e) { e.printStackTrace(); } try { if (out != null) { out.flush(); out.close(); bSuccess3 = true; } else bSuccess3 = false; } catch (IOException e) { e.printStackTrace(); bSuccess3 = false; } finally { if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } return (bSuccess1 && bSuccess2 && bSuccess3); }
From source file:Main.java
/** * cut a circle from a bitmap/* ww w . j av a 2 s . co m*/ * * @param picturePath complete path name for the file. * @param destCube the cube dimension of dest bitmap * @return the bitmap */ public static Bitmap cutCircleFromBitmap(String picturePath, int destCube) { BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inDither = false; //Disable Dithering mode opts.inPurgeable = true; //Tell to gc that whether it needs free memory, the Bitmap can be cleared opts.inInputShareable = true; //Which kind of reference will be used to recover the Bitmap data after being clear, when it will be used in the future opts.inTempStorage = new byte[32 * 1024]; Bitmap bitmapImg = BitmapFactory.decodeFile(picturePath, opts); int cube = destCube; if (bitmapImg == null) return null; int smallest = Math.min(bitmapImg.getWidth(), bitmapImg.getHeight()); Bitmap output = Bitmap.createBitmap(cube, cube, Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); int left = (int) ((bitmapImg.getWidth() - smallest) * 0.5); int top = (int) ((bitmapImg.getHeight() - smallest) * 0.5); final Rect rectSrc = new Rect(left, top, left + smallest, top + smallest); final Rect rectDest = new Rect(0, 0, cube, cube); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawCircle(cube / 2, cube / 2, cube / 2, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmapImg, rectSrc, rectDest, paint); bitmapImg.recycle(); return output; }
From source file:Main.java
public static Drawable createGradientColorAndCover(Context context, int coveredResID, int CoverColor) { //final Resources res=context.getResources(); final Resources res = context.getResources(); Bitmap bitmap = BitmapFactory.decodeResource(res, coveredResID); if (bitmap == null) { return null; }/*from w w w .ja v a 2s . com*/ final int length = bitmap.getWidth(); final int height = bitmap.getHeight(); int[] shape = new int[length * height]; int[] colors = new int[length * height]; bitmap.getPixels(shape, 0, length, 0, 0, length, height); int color = CoverColor; for (int i = 0; i < length * height; i++) { float percent = ((float) i % length / length) * 0xff; int alpha = ((int) percent << 6 * 4); alpha &= shape[i] & 0xFF000000; colors[i] = (alpha) | (color & 0x00FFFFFF); } Bitmap newbitmap = Bitmap.createBitmap(length, height, Bitmap.Config.ARGB_8888); newbitmap.setPixels(colors, 0, length, 0, 0, length, height); Bitmap fooBitmap = Bitmap.createBitmap(length, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(fooBitmap); Paint paint = new Paint(); canvas.drawBitmap(bitmap, 0, 0, paint); canvas.drawBitmap(newbitmap, 0, 0, paint); newbitmap.recycle(); bitmap.recycle(); return new BitmapDrawable(res, fooBitmap); }