Java Code Examples for android.graphics.Bitmap#copy()
The following examples show how to use
android.graphics.Bitmap#copy() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: UserApiCache.java From BlackLight with GNU General Public License v3.0 | 6 votes |
private Bitmap drawVipType(UserModel model, Bitmap bitmap) { if (!model.verified || model.verified_type < 0) return bitmap; BitmapDrawable drawable = mVipDrawable[model.verified_type > 1 ? 1 : model.verified_type]; Bitmap copy = bitmap.copy(Bitmap.Config.ARGB_8888, true); Canvas canvas = new Canvas(copy); int w1 = bitmap.getWidth(); int w2 = w1 / 4; int h1 = bitmap.getHeight(); int h2 = h1 / 4; drawable.setBounds(w1 - w2, h1 - h2, w1, h1); drawable.draw(canvas); bitmap.recycle(); return copy; }
Example 2
Source File: WholeImageTransformation.java From picasso-transformations with Apache License 2.0 | 6 votes |
@Override public Bitmap transform(Bitmap source) { int width = source.getWidth(); int height = source.getHeight(); Bitmap bitmap = source.copy(source.getConfig(), true); source.recycle(); originalSpace = new Rect(0, 0, width, height); transformedSpace = new Rect(0, 0, width, height); transformSpace(transformedSpace); int[] inPixels = new int[width * height]; bitmap.getPixels(inPixels, 0, width, 0, 0, width, height); inPixels = filterPixels(width, height, inPixels, transformedSpace); bitmap.setPixels(inPixels, 0, transformedSpace.width(), 0, 0, transformedSpace.width(), transformedSpace.height()); return bitmap; }
Example 3
Source File: ImageUtils.java From Android-utils with Apache License 2.0 | 6 votes |
public static Bitmap addImageWatermark(final Bitmap src, final Bitmap watermark, final int x, final int y, final int alpha, final boolean recycle) { if (isEmptyBitmap(src)) return null; Bitmap ret = src.copy(src.getConfig(), true); if (!isEmptyBitmap(watermark)) { Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); Canvas canvas = new Canvas(ret); paint.setAlpha(alpha); canvas.drawBitmap(watermark, x, y, paint); } if (recycle && !src.isRecycled()) src.recycle(); return ret; }
Example 4
Source File: MultiSelectEditText.java From AutoCompleteBubbleText with Apache License 2.0 | 6 votes |
protected BitmapDrawable convertViewToDrawable(View textView) { int spec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED); textView.measure(spec, spec); textView.layout(0, 0, textView.getMeasuredWidth(), textView.getMeasuredHeight()); Bitmap b = Bitmap.createBitmap(textView.getMeasuredWidth(), textView.getMeasuredHeight(), Bitmap.Config.ARGB_8888); Canvas c = new Canvas(b); c.translate(-textView.getScrollX(), -textView.getScrollY()); textView.draw(c); textView.setDrawingCacheEnabled(true); Bitmap cacheBmp = textView.getDrawingCache(); Bitmap viewBmp = cacheBmp.copy(Bitmap.Config.ARGB_8888, true); textView.destroyDrawingCache(); BitmapDrawable bd = new BitmapDrawable(getContext().getResources(), viewBmp); bd.setBounds(0, 0, viewBmp.getWidth(), viewBmp.getHeight()); return bd; }
Example 5
Source File: ImageUtils.java From Android-utils with Apache License 2.0 | 6 votes |
private static Bitmap addBorder(final Bitmap src, @IntRange(from = 1) final int borderSize, @ColorInt final int color, final boolean isCircle, final float cornerRadius, final boolean recycle) { if (isEmptyBitmap(src)) return null; Bitmap ret = recycle ? src : src.copy(src.getConfig(), true); int width = ret.getWidth(); int height = ret.getHeight(); Canvas canvas = new Canvas(ret); Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(color); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(borderSize); if (isCircle) { float radius = Math.min(width, height) / 2f - borderSize / 2f; canvas.drawCircle(width / 2f, height / 2f, radius, paint); } else { int halfBorderSize = borderSize >> 1; RectF rectF = new RectF(halfBorderSize, halfBorderSize, width - halfBorderSize, height - halfBorderSize); canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint); } return ret; }
Example 6
Source File: ImageUtils.java From AndroidUtilCode with Apache License 2.0 | 6 votes |
/** * Return the bitmap with image watermarking. * * @param src The source of bitmap. * @param watermark The image watermarking. * @param x The x coordinate of the first pixel. * @param y The y coordinate of the first pixel. * @param alpha The alpha of watermark. * @param recycle True to recycle the source of bitmap, false otherwise. * @return the bitmap with image watermarking */ public static Bitmap addImageWatermark(final Bitmap src, final Bitmap watermark, final int x, final int y, final int alpha, final boolean recycle) { if (isEmptyBitmap(src)) return null; Bitmap ret = src.copy(src.getConfig(), true); if (!isEmptyBitmap(watermark)) { Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); Canvas canvas = new Canvas(ret); paint.setAlpha(alpha); canvas.drawBitmap(watermark, x, y, paint); } if (recycle && !src.isRecycled() && ret != src) src.recycle(); return ret; }
Example 7
Source File: PointTransformation.java From picasso-transformations with Apache License 2.0 | 6 votes |
@Override public Bitmap transform(Bitmap source) { int width = source.getWidth(); int height = source.getHeight(); setDimensions(width, height); Bitmap bitmap = source.copy(source.getConfig(), true); source.recycle(); int[] inPixels = new int[width]; for (int y = 0; y < height; y++) { bitmap.getPixels(inPixels, 0, width, 0, y, width, 1); for (int x = 0; x < width; x++) { inPixels[x] = filterRGB(x, y, inPixels[x]); } bitmap.setPixels(inPixels, 0, width, 0, y, width, 1); } return bitmap; }
Example 8
Source File: FastBlurActivity.java From PracticeDemo with Apache License 2.0 | 6 votes |
/** * 有些手机不支持....so 不能用 * * @param sentBitmap * @param radius */ private void RenderScriptblur(Bitmap sentBitmap, int radius) { long start = System.currentTimeMillis(); Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true); final RenderScript rs = RenderScript.create(FastBlurActivity.this); final Allocation input = Allocation.createFromBitmap(rs, sentBitmap, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT); final Allocation output = Allocation.createTyped(rs, input.getType()); final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); script.setRadius(radius /* e.g. 3.f */); script.setInput(input); script.forEach(output); output.copyTo(bitmap); mIvBlur.setImageBitmap(bitmap); long end = System.currentTimeMillis(); Log.v(TAG, "fastblur time:" + (end - start)); }
Example 9
Source File: ImageBlurManager.java From SimplifyReader with Apache License 2.0 | 6 votes |
public static Bitmap doBlurJniBitMap(Bitmap sentBitmap, int radius, boolean canReuseInBitmap) { Bitmap bitmap; if (canReuseInBitmap) { bitmap = sentBitmap; } else { bitmap = sentBitmap.copy(sentBitmap.getConfig(), true); } if (radius < 1) { return (null); } // Jni bitmap calculate ImageBlur.blurBitMap(bitmap, radius); return (bitmap); }
Example 10
Source File: RenderscriptBlurringMachine.java From fogger with Apache License 2.0 | 6 votes |
@Override protected Bitmap blur(Context context, Bitmap bitmapToBlur, int radius) { Log.i(TAG, "Current build version sdk " + Build.VERSION.SDK_INT); Bitmap bitmap = bitmapToBlur.copy(bitmapToBlur.getConfig(), true); final RenderScript renderScript = RenderScript.create(context, Build.VERSION.SDK_INT); final Allocation input = Allocation.createFromBitmap(renderScript, bitmapToBlur, Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT); final Allocation output = Allocation.createTyped(renderScript, input.getType()); try { final ScriptIntrinsicBlur script = createBlurringScript(radius, renderScript, input); script.forEach(output); renderScript.finish(); output.copyTo(bitmap); } finally { input.destroy(); output.destroy(); bitmapToBlur.recycle(); renderScript.destroy(); } return bitmap; }
Example 11
Source File: Predictor.java From Paddle-Lite-Demo with Apache License 2.0 | 5 votes |
public void setInputImage(Bitmap image) { if (image == null) { return; } // Scale image to the size of input tensor Bitmap rgbaImage = image.copy(Bitmap.Config.ARGB_8888, true); Bitmap scaleImage = Bitmap.createScaledBitmap(rgbaImage, (int) inputShape[3], (int) inputShape[2], true); this.inputImage = scaleImage; }
Example 12
Source File: BitmapRegionTileSource.java From LB-Launcher with Apache License 2.0 | 5 votes |
private static Bitmap ensureGLCompatibleBitmap(Bitmap bitmap) { if (bitmap == null || bitmap.getConfig() != null) { return bitmap; } Bitmap newBitmap = bitmap.copy(Config.ARGB_8888, false); bitmap.recycle(); return newBitmap; }
Example 13
Source File: FaceUtils.java From RairDemo with Apache License 2.0 | 5 votes |
public static Bitmap detectionFace(Bitmap b) { // 检测前必须转化为RGB_565格式。文末有详述连接 Bitmap bitmap = b.copy(Bitmap.Config.RGB_565, true); b.recycle(); // 设定最大可查的人脸数量 int MAX_FACES = 5; FaceDetector faceDet = new FaceDetector(bitmap.getWidth(), bitmap.getHeight(), MAX_FACES); // 将人脸数据存储到faceArray 中 FaceDetector.Face[] faceArray = new FaceDetector.Face[MAX_FACES]; // 返回找到图片中人脸的数量,同时把返回的脸部位置信息放到faceArray中,过程耗时 int findFaceCount = faceDet.findFaces(bitmap, faceArray); // 获取传回的脸部数组中的第一张脸的信息 FaceDetector.Face face1 = faceArray[0]; // 获取双眼的中心点,用一个PointF来接收其x、y坐标 PointF point = new PointF(); face1.getMidPoint(point); // 获取该部位为人脸的可信度,0~1 float confidence = face1.confidence(); // 获取双眼间距 float eyesDistance = face1.eyesDistance(); // 获取面部姿势 // 传入X则获取到x方向上的角度,传入Y则获取到y方向上的角度,传入Z则获取到z方向上的角度 float angle = face1.pose(FaceDetector.Face.EULER_X); // todo 在bitmap上绘制一个Rect框住脸,因为返回的是眼睛位置,所以还要做一些处理 return bitmap; }
Example 14
Source File: ToastedMarkerOptionsChooser.java From clusterkraf with Apache License 2.0 | 5 votes |
@SuppressLint("NewApi") private Bitmap getClusterBitmap(Resources res, int resourceId, int clusterSize) { BitmapFactory.Options options = new BitmapFactory.Options(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { options.inMutable = true; } Bitmap bitmap = BitmapFactory.decodeResource(res, resourceId, options); if (bitmap.isMutable() == false) { bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); } Canvas canvas = new Canvas(bitmap); Paint paint = null; float originY; if (clusterSize < 100) { paint = clusterPaintLarge; originY = bitmap.getHeight() * 0.64f; } else if (clusterSize < 1000) { paint = clusterPaintMedium; originY = bitmap.getHeight() * 0.6f; } else { paint = clusterPaintSmall; originY = bitmap.getHeight() * 0.56f; } canvas.drawText(String.valueOf(clusterSize), bitmap.getWidth() * 0.5f, originY, paint); return bitmap; }
Example 15
Source File: ImageUtils.java From AndroidUtilCode with Apache License 2.0 | 5 votes |
/** * Return the bitmap with border. * * @param src The source of bitmap. * @param borderSize The size of border. * @param color The color of border. * @param isCircle True to draw circle, false to draw corner. * @param cornerRadius The radius of corner. * @param recycle True to recycle the source of bitmap, false otherwise. * @return the bitmap with border */ private static Bitmap addBorder(final Bitmap src, @IntRange(from = 1) final int borderSize, @ColorInt final int color, final boolean isCircle, final float cornerRadius, final boolean recycle) { if (isEmptyBitmap(src)) return null; Bitmap ret = recycle ? src : src.copy(src.getConfig(), true); int width = ret.getWidth(); int height = ret.getHeight(); Canvas canvas = new Canvas(ret); Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(color); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(borderSize); if (isCircle) { float radius = Math.min(width, height) / 2f - borderSize / 2f; canvas.drawCircle(width / 2f, height / 2f, radius, paint); } else { int halfBorderSize = borderSize >> 1; RectF rectF = new RectF(halfBorderSize, halfBorderSize, width - halfBorderSize, height - halfBorderSize); canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint); } return ret; }
Example 16
Source File: CaptionedImageView.java From auid2 with Apache License 2.0 | 4 votes |
private void updateBlur() { if (!(mDrawable instanceof BitmapDrawable)) { return; } final int textViewHeight = mTextView.getHeight(); if (textViewHeight == 0) { return; } // Determine the size of the TextView compared to the height of the ImageView final float ratio = (float) textViewHeight / mImageView.getHeight(); // Get the Bitmap final BitmapDrawable bitmapDrawable = (BitmapDrawable) mDrawable; final Bitmap originalBitmap = bitmapDrawable.getBitmap(); // Calculate the height as a ratio of the Bitmap int height = (int) (ratio * originalBitmap.getHeight()); // The y position is the number of pixels height represents from the bottom of the Bitmap final int y = originalBitmap.getHeight() - height; final Bitmap portionToBlur = Bitmap.createBitmap(originalBitmap, 0, y, originalBitmap.getWidth(), height); final Bitmap blurredBitmap = portionToBlur.copy(Bitmap.Config.ARGB_8888, true); // Use RenderScript to blur the pixels RenderScript rs = RenderScript.create(getContext()); ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); Allocation tmpIn = Allocation.createFromBitmap(rs, portionToBlur); Allocation tmpOut = Allocation.createFromBitmap(rs, blurredBitmap); theIntrinsic.setRadius(25f); theIntrinsic.setInput(tmpIn); theIntrinsic.forEach(tmpOut); tmpOut.copyTo(blurredBitmap); new Canvas(blurredBitmap).drawColor(mScrimColor); // Create the new bitmap using the old plus the blurred portion and display itwww final Bitmap newBitmap = originalBitmap.copy(Bitmap.Config.ARGB_8888, true); final Canvas canvas = new Canvas(newBitmap); canvas.drawBitmap(blurredBitmap, 0, y, new Paint()); mImageView.setImageBitmap(newBitmap); }
Example 17
Source File: RoundWhiteImageView.java From LLApp with Apache License 2.0 | 4 votes |
@Override protected void onDraw(Canvas canvas) { Drawable drawable = getDrawable(); if (drawable == null) { return; } if (getWidth() == 0 || getHeight() == 0) { return; } this.measure(0, 0); if (drawable.getClass() == NinePatchDrawable.class) return; // Bitmap b = ((BitmapDrawable) drawable).getBitmap(); Bitmap b = drawableToBitamp(drawable); Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true); if (defaultWidth == 0) { defaultWidth = getWidth(); } if (defaultHeight == 0) { defaultHeight = getHeight(); } // 保证重新读取图片后不会因为图片大小而改变控件宽、高的大小(针对宽、高为wrap_content布局的imageview,但会导致margin无效) // if (defaultWidth != 0 && defaultHeight != 0) { // LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( // defaultWidth, defaultHeight); // setLayoutParams(params); // } int radius = 0; if (mBorderInsideColor != defaultColor && mBorderOutsideColor != defaultColor) {// 定义画两个边框,分别为外圆边框和内圆边框 radius = (defaultWidth < defaultHeight ? defaultWidth : defaultHeight) / 2 - 2 * mBorderThickness; // 画内圆 drawCircleBorder(canvas, radius + mBorderThickness / 2, mBorderInsideColor); // 画外圆 drawCircleBorder(canvas, radius + mBorderThickness + mBorderThickness / 2, mBorderOutsideColor); } else if (mBorderInsideColor != defaultColor && mBorderOutsideColor == defaultColor) {// 定义画一个边框 radius = (defaultWidth < defaultHeight ? defaultWidth : defaultHeight) / 2 - mBorderThickness; drawCircleBorder(canvas, radius + mBorderThickness / 2, mBorderInsideColor); } else if (mBorderInsideColor == defaultColor && mBorderOutsideColor != defaultColor) {// 定义画一个边框 radius = (defaultWidth < defaultHeight ? defaultWidth : defaultHeight) / 2 - mBorderThickness; drawCircleBorder(canvas, radius + mBorderThickness / 2, mBorderOutsideColor); } else {// 没有边框 radius = (defaultWidth < defaultHeight ? defaultWidth : defaultHeight) / 2; } Bitmap roundBitmap = getCroppedRoundBitmap(bitmap, radius); canvas.drawBitmap(roundBitmap, defaultWidth / 2 - radius, defaultHeight / 2 - radius, null); }
Example 18
Source File: MusicService.java From Muzesto with GNU General Public License v3.0 | 4 votes |
private void updateMediaSession(final String what) { int playState = mIsSupposedToBePlaying ? PlaybackStateCompat.STATE_PLAYING : PlaybackStateCompat.STATE_PAUSED; if (what.equals(PLAYSTATE_CHANGED) || what.equals(POSITION_CHANGED)) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mSession.setPlaybackState(new PlaybackStateCompat.Builder() .setState(playState, position(), 1.0f) .setActions(PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PAUSE | PlaybackStateCompat.ACTION_PLAY_PAUSE | PlaybackStateCompat.ACTION_SKIP_TO_NEXT | PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) .build()); } } else if (what.equals(META_CHANGED) || what.equals(QUEUE_CHANGED)) { Bitmap albumArt = ImageLoader.getInstance().loadImageSync(TimberUtils.getAlbumArtUri(getAlbumId()).toString()); if (albumArt != null) { Bitmap.Config config = albumArt.getConfig(); if (config == null) { config = Bitmap.Config.ARGB_8888; } albumArt = albumArt.copy(config, false); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mSession.setMetadata(new MediaMetadataCompat.Builder() .putString(MediaMetadataCompat.METADATA_KEY_ARTIST, getArtistName()) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ARTIST, getAlbumArtistName()) .putString(MediaMetadataCompat.METADATA_KEY_ALBUM, getAlbumName()) .putString(MediaMetadataCompat.METADATA_KEY_TITLE, getTrackName()) .putLong(MediaMetadataCompat.METADATA_KEY_DURATION, duration()) .putLong(MediaMetadataCompat.METADATA_KEY_TRACK_NUMBER, getQueuePosition() + 1) .putLong(MediaMetadataCompat.METADATA_KEY_NUM_TRACKS, getQueue().length) .putString(MediaMetadataCompat.METADATA_KEY_GENRE, getGenreName()) .putBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART, mShowAlbumArtOnLockscreen ? albumArt : null) .build()); mSession.setPlaybackState(new PlaybackStateCompat.Builder() .setState(playState, position(), 1.0f) .setActions(PlaybackStateCompat.ACTION_PLAY | PlaybackStateCompat.ACTION_PAUSE | PlaybackStateCompat.ACTION_PLAY_PAUSE | PlaybackStateCompat.ACTION_SKIP_TO_NEXT | PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS) .build()); } } }
Example 19
Source File: Utils.java From Android-MobileFaceNet-MTCNN-FaceAntiSpoofing with MIT License | 4 votes |
public static Bitmap copyBitmap(Bitmap bitmap){ return bitmap.copy(bitmap.getConfig(),true); }
Example 20
Source File: RoundImageView.java From myapplication with Apache License 2.0 | 3 votes |
@Override protected void onDraw(Canvas canvas) { Drawable drawable = getDrawable(); if (drawable == null) { return; } if (getWidth() == 0 || getHeight() == 0) { return; } Bitmap b = ((BitmapDrawable) drawable).getBitmap(); if (null == b) { return; } Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true); int w = getWidth(), h = getHeight(); Bitmap roundBitmap = getCroppedBitmap(bitmap, w); canvas.drawBitmap(roundBitmap, 0, 0, null); }