List of usage examples for android.graphics Canvas drawBitmap
public void drawBitmap(@NonNull Bitmap bitmap, @Nullable Rect src, @NonNull Rect dst, @Nullable Paint paint)
From source file:Main.java
public static Bitmap createReflectionBitmap(Bitmap bitmap) { final int reflectionGap = 4; int width = bitmap.getWidth(); int height = bitmap.getHeight(); Matrix matrix = new Matrix(); matrix.preScale(1, -1);//from w w w .jav a2 s. co m Bitmap reflectionImage = Bitmap.createBitmap(bitmap, 0, height / 2, width, height / 2, matrix, false); Bitmap bitmapWithReflection = Bitmap.createBitmap(width, (height + height / 2), Config.ARGB_8888); Canvas canvas = new Canvas(bitmapWithReflection); canvas.drawBitmap(bitmap, 0, 0, null); Paint deafalutPaint = new Paint(); canvas.drawRect(0, height, width, height + reflectionGap, deafalutPaint); canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null); Paint paint = new Paint(); LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, Shader.TileMode.CLAMP); paint.setShader(shader); // Set the Transfer mode to be porter duff and destination in paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); // Draw a rectangle using the paint with our linear gradient canvas.drawRect(0, height, width, bitmapWithReflection.getHeight() + reflectionGap, paint); return bitmapWithReflection; }
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 www. ja v a 2 s . c o m 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); }
From source file:Main.java
public static Bitmap formatBitmap(Bitmap bitmap, int width, int height) { int wh = Math.max(bitmap.getWidth(), bitmap.getHeight()); Bitmap mBitmap = Bitmap.createBitmap(wh, wh, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(mBitmap); canvas.drawBitmap(bitmap, -(bitmap.getWidth() - wh) / 2, -(bitmap.getHeight() - wh) / 2, null); bitmap = Bitmap.createScaledBitmap(mBitmap, width, height, true); return bitmap; }
From source file:Main.java
public static Bitmap getRemoveBitmap(Context context, Bitmap bitmap) { Paint paint = new Paint(); paint.setAntiAlias(true);/* w ww . jav a2 s . com*/ Bitmap bitmap1; try { Bitmap bitmap2 = BitmapFactory.decodeStream(context.getAssets().open("remove@2x.png")); bitmap1 = Bitmap.createBitmap(bitmap.getWidth() + bitmap2.getWidth() / 2, bitmap.getHeight() + bitmap2.getHeight() / 2, android.graphics.Bitmap.Config.ARGB_8888); Canvas canvas1 = new Canvas(bitmap1); canvas1.drawARGB(0, 0, 0, 0); canvas1.drawBitmap(bitmap, bitmap2.getWidth() / 2, bitmap2.getHeight() / 2, paint); bitmap.recycle(); canvas1.drawBitmap(bitmap2, 0.0F, 0.0F, paint); bitmap2.recycle(); } catch (IOException ioexception) { ioexception.printStackTrace(); bitmap1 = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), android.graphics.Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap1); canvas.drawARGB(0, 0, 0, 0); canvas.drawBitmap(bitmap, 0.0F, 0.0F, paint); bitmap.recycle(); } return bitmap1; }
From source file:Main.java
/** * Copy the red channel to a new Bitmap's alpha channel. The old * one will be recycled./* w ww.java 2 s .co 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 byte[] bmpToByteArray2(final Bitmap bmp, final boolean needRecycle) { int i;//from w w w . j av a 2 s. c o m int j; if (bmp.getHeight() > bmp.getWidth()) { i = bmp.getWidth(); j = bmp.getWidth(); } else { i = bmp.getHeight(); j = bmp.getHeight(); } Bitmap localBitmap = Bitmap.createBitmap(i, j, Bitmap.Config.RGB_565); Canvas localCanvas = new Canvas(localBitmap); while (true) { localCanvas.drawBitmap(bmp, new Rect(0, 0, i, j), new Rect(0, 0, i, j), null); if (needRecycle) bmp.recycle(); ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream(); localBitmap.compress(Bitmap.CompressFormat.JPEG, 100, localByteArrayOutputStream); localBitmap.recycle(); byte[] arrayOfByte = localByteArrayOutputStream.toByteArray(); try { localByteArrayOutputStream.close(); return arrayOfByte; } catch (Exception e) { //F.out(e); } i = bmp.getHeight(); j = bmp.getHeight(); } }
From source file:Main.java
public static void blur(Context context, Bitmap bkg, View view, int width, int height) { float radius = 20; Log.i("hulixia", bkg.getWidth() + "w,h" + bkg.getDensity()); Bitmap overlay = Bitmap.createBitmap(bkg.getWidth(), bkg.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(overlay); canvas.translate(-view.getLeft(), -view.getTop()); canvas.drawBitmap(bkg, 0, 0, null); RenderScript rs = RenderScript.create(context); Allocation overlayAlloc = Allocation.createFromBitmap(rs, overlay); ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(rs, overlayAlloc.getElement()); blur.setInput(overlayAlloc);/* w ww . j a va2 s. c o m*/ blur.setRadius(radius); blur.forEach(overlayAlloc); overlayAlloc.copyTo(overlay); view.setBackground(new BitmapDrawable(context.getResources(), overlay)); rs.destroy(); }
From source file:Main.java
public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap) { final int reflectionGap = 4; int w = bitmap.getWidth(); int h = bitmap.getHeight(); Matrix matrix = new Matrix(); matrix.preScale(1, -1);/*from w w w. j a v a 2s.co m*/ Bitmap reflectionImage; reflectionImage = Bitmap.createBitmap(bitmap, 0, h / 2, w, h / 2, matrix, false); Bitmap bitmapWithReflection = Bitmap.createBitmap(w, (h + h / 2), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmapWithReflection); canvas.drawBitmap(bitmap, 0, 0, null); Paint defaultPaint = new Paint(); canvas.drawRect(0, h, w, h + reflectionGap, defaultPaint); canvas.drawBitmap(reflectionImage, 0, h + reflectionGap, null); Paint paint = new Paint(); LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0, bitmapWithReflection.getHeight() + reflectionGap, 0x70ffffff, 0x00ffffff, Shader.TileMode.CLAMP); paint.setShader(shader); // Set the Transfer mode to be porter duff and destination in paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); // Draw a rectangle using the paint with our linear gradient canvas.drawRect(0, h, w, bitmapWithReflection.getHeight() + reflectionGap, paint); return bitmapWithReflection; }
From source file:Main.java
public static Bitmap changeBitmapColor(Bitmap bmp, int color) { Bitmap b = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), bmp.getConfig()); Canvas canvas = new Canvas(b); Paint paint = new Paint(); paint.setColor(color);/*from w w w .jav a 2 s . c o m*/ paint.setAntiAlias(true); canvas.drawBitmap(bmp, bmp.getWidth(), bmp.getHeight(), paint); return b; }
From source file:Main.java
public static Bitmap getPlusBitmap(Context context, String s) { Paint paint = new Paint(); paint.setAntiAlias(true);/*from w w w . j ava2s.c o m*/ Bitmap bitmap = BitmapFactory.decodeStream(getCommunityPicInputStream(s)); Bitmap bitmap1; if (bitmap != null) { Bitmap bitmap2 = BitmapFactory.decodeResource(context.getResources(), 0x7f02003f); bitmap1 = Bitmap.createBitmap(bitmap.getWidth() + bitmap2.getWidth() / 2, bitmap.getHeight() + bitmap2.getHeight() / 2, android.graphics.Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap1); canvas.drawARGB(0, 0, 0, 0); canvas.drawBitmap(bitmap, 0.0F, 0.0F, paint); bitmap.recycle(); canvas.drawBitmap(bitmap2, bitmap.getWidth() - bitmap2.getWidth() / 2, bitmap.getHeight() - bitmap2.getHeight() / 2, paint); bitmap2.recycle(); } else { bitmap1 = null; } return bitmap1; }