`

Android之图片处理(图片合成、图片圆角、图片翻转、图片缩放)

 
阅读更多
图片合成

/**
* 图片合成
* @param bitmap
* @return
*/
private Bitmap createBitmap( Bitmap src, Bitmap watermark ) {
if( src == null ) {
return null;
}
int w = src.getWidth();
int h = src.getHeight();
int ww = watermark.getWidth();
int wh = watermark.getHeight();
//create the new blank bitmap
Bitmap newb = Bitmap.createBitmap( w, h, Config.ARGB_8888 );//创建一个新的和SRC长度宽度一样的位图
Canvas cv = new Canvas( newb );
//draw src into
cv.drawBitmap( src, 0, 0, null );//在 0,0坐标开始画入src
//draw watermark into
cv.drawBitmap( watermark, w - ww + 5, h - wh + 5, null );//在src的右下角画入水印
//save all clip 
cv.save( Canvas.ALL_SAVE_FLAG );//保存
//store
cv.restore();//存储
return newb;
}



图片圆角

/**
* 图片圆角
* @param bitmap
* @return
*/
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;
}



图片缩放、翻转和旋转



/**
* 缩放、翻转和旋转图片
* @param bmpOrg
* @param rotate
* @return
*/
private android.graphics.Bitmap gerZoomRotateBitmap(
android.graphics.Bitmap bmpOrg, int rotate) {
// 获取图片的原始的大小
int width = bmpOrg.getWidth();
int height = bmpOrg.getHeight();

int newWidth = 300;
int newheight = 300;
// 定义缩放的高和宽的比例
float sw = ((float) newWidth) / width;
float sh = ((float) newheight) / height;
// 创建操作图片的用的Matrix对象
android.graphics.Matrix matrix = new android.graphics.Matrix();
// 缩放翻转图片的动作
// sw sh的绝对值为绽放宽高的比例,sw为负数表示X方向翻转,sh为负数表示Y方向翻转
matrix.postScale(sw, sh);
// 旋转30*
matrix.postRotate(rotate);
//创建一个新的图片 
android.graphics.Bitmap resizeBitmap = android.graphics.Bitmap
.createBitmap(bmpOrg, 0, 0, width, height, matrix, true);
return resizeBitmap;
}
// 缩放
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);

        }

 来自:http://www.cnblogs.com/olvo/archive/2012/04/14/2447097.html

分享到:
评论

相关推荐

    Android studio 实现图片翻转

    总之,实现“Android studio 实现图片翻转”这一功能,需要掌握Android动画系统的基础知识,理解视图动画、属性动画的原理,熟悉自定义View的绘制过程,以及如何处理用户交互。通过这些技术,可以创建出类似支付宝...

    android 图片拼接 缩放 特效 拖动 翻转

    本文将深入探讨如何在Android平台上实现图片的拼接、缩放、特效、拖动以及翻转功能,这些都是移动应用中常见的交互和视觉元素。我们将以`DrawDemo`为例,来阐述这些技术的实现细节。 1. **图片拼接**: 图片拼接是...

    android图片翻转动画

    在Android开发中,实现图片翻转动画是一种常见的交互设计,可以增强用户体验,使得应用看起来更加生动有趣。本文将深入探讨如何在Android平台上实现3D图片翻转动画。 首先,我们需要了解Android中的动画系统。...

    vue iview多张图片大图预览、缩放翻转

    标签为“vue iview多张图片大图预览 vue iview多张图片预览 vue图片预览缩放翻转”,这些标签指向了本文的核心内容,即如何在Vue和iView的环境下实现图片预览功能,以及如何实现图片的缩放和翻转。这些标签将帮助...

    Android 常用图片特效处理源码.zip

    在Android开发中,图片特效处理是一项常见的需求,无论是为了增强用户体验,还是为了实现特定的设计风格。这个名为"Android 常用图片特效处理源码.zip"的压缩包中,包含了多个示例图片以及一个源码文件,用于演示...

    Android 翻转动画 ,像硬币一样的翻转动画

    在Android开发中,动画是提升用户体验的关键因素之一。本文将深入探讨如何实现“硬币翻转”效果的动画,这通常用于头像或其他图形元素,为用户界面增添动态感和互动性。 首先,Android提供了两种主要类型的动画:补...

    图片处理,缩放和翻转

    本压缩包提供的"图片处理,缩放和翻转"源代码,包含了实现这些功能的核心算法和技术,旨在帮助开发者理解和实现图片的常见操作。 首先,我们来看"图片缩放"。图片缩放分为等比例缩放和非等比例缩放。等比例缩放通常...

    Android图片处理效果

    在Android开发中,图片处理是不可或缺的一部分,尤其在创建用户界面和提高用户体验时。本教程将深入探讨如何在Android平台上实现图片的圆角效果和倒影效果,这些都是增强视觉吸引力和设计感的重要技术。 首先,让...

    android图片翻转效果

    android卡片翻转效果,使用view的draw方法直接绘制,节省性能,如果放到liestview或者recycleview中的话,请自行稍加修改,不要使用bitmap来做存储即可,本想0分,但是目前至少要选1分,没法办

    android中图片翻转Demo

    通过这个Android中图片翻转的Demo,开发者可以学习到如何利用`Matrix`、`ImageView`以及动画技术实现图片翻转效果,并了解如何在实际项目中进行性能优化和兼容性处理。这是一个基础但实用的功能,对于提升应用的用户...

    android 圆角图片+图片倒影

    在Android开发中,创建圆角图片和图片倒影是常见的需求,这主要涉及到图像处理和视图绘制的技术。本文将详细讲解如何在Android平台上实现这些功能。 首先,让我们来看看如何生成圆角图片。在Android中,我们可以...

    Android图片倒影+圆角图片

    在Android开发中,图片处理是常见且重要的任务之一。这个话题涵盖了两个方面:创建图片的倒影效果和制作圆角图片。这两个特性可以用于提升应用的用户体验,使其看起来更加美观和专业。 首先,我们来讨论如何在...

    Android 3D相册图片滑动+倾斜+放大+倒影处理源码.zip

    源码中可能有对ScaleGestureDetector类的使用,该类可以帮助我们识别并处理缩放手势。在放大过程中,图片的中心点会保持不变,而其他部分会相应地缩放。 倒影处理通常涉及到对原始图片的翻转操作,这可以通过复制...

    图片查卡器JS,支持图片缩放翻转漫游

    标题中的“图片查卡器JS,支持图片缩放翻转漫游”指的是一个基于JavaScript的图片查看器,它具备图片缩放、翻转和漫游(平移)等功能,为用户提供更加灵活和丰富的图片浏览体验。这样的工具在网页设计、在线相册、...

    android 防微信图片放大,仿win8界面图片动态翻转。

    本项目"android 防微信图片放大,仿win8界面图片动态翻转"就是一个这样的尝试,它结合了微信图片查看器的特性与Windows 8风格的界面设计,为用户提供了一种全新的图片浏览体验。 首先,我们来探讨“防微信图片放大...

    android常用图片特效处理

    在Android开发中,图片特效处理是一项重要的技能,它涉及到图像的色彩调整、滤镜应用、形状变换等多个方面。本文将围绕“android常用图片特效处理”这一主题,详细讲解相关知识点。 首先,我们要理解Android中处理...

    Android图片处理demo

    总结起来,这个"Android图片处理demo"涵盖了Android图片的加载、解码、显示、旋转、缩放、滤镜应用以及内存管理和异步处理等多个方面。通过学习和分析这个示例,开发者可以掌握Android平台上的图片处理技巧,提高...

    图像处理 图片缩放 图片滤波 图片旋转

    首先,图像缩放是调整图像尺寸的过程,可以放大或缩小图片。常见的方法有最近邻插值和双线性插值。最近邻插值简单快速,但可能导致像素化;双线性插值则通过周围像素的加权平均来获取新位置的颜色,效果更平滑,但...

    Android图片处理

    在Android平台上,图片处理是一项重要的任务,特别是在开发各种应用程序,如社交网络、图像编辑器或者游戏时。Android提供了丰富的API和工具,使开发者能够实现类似于Adobe Photoshop(简称PS)的效果。下面将详细...

    android实现2D图片翻转

    在Android平台上,实现2D图片翻转是一种常见的动画效果,可以增强用户界面的交互性和视觉吸引力。本教程将深入探讨如何使用Android的普通动画(Property Animation)系统来创建这种效果,特别是关注`ScaleAnimation`...

Global site tag (gtag.js) - Google Analytics