引用
http://www.cnblogs.com/zhengtao/articles/1930802.htm
//放大缩小图片
public static Bitmap zoomBitmap(Bitmap bitmap,int w,int h){
int width = bitmap.getWidth();
int height = bitmap.getHeight();
Matrix matrix = new Matrix();
float scaleWidht = ((float)w / width);
float scaleHeight = ((float)h / height);
matrix.postScale(scaleWidht, scaleHeight);
Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
return newbmp;
}
//将Drawable转化为Bitmap
public static Bitmap drawableToBitmap(Drawable drawable){
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height,drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888: Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0,0,width,height);
drawable.draw(canvas);
return bitmap;
}
//获得圆角图片的方法
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap,float roundPx){
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);
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;
}
//获得带倒影的图片方法
public static Bitmap createReflectionImageWithOrigin(Bitmap bitmap){
final int reflectionGap = 4;
int width = bitmap.getWidth();
int height = bitmap.getHeight();
Matrix matrix = new Matrix();
matrix.preScale(1, -1);
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, TileMode.CLAMP);
paint.setShader(shader);
// Set the Transfer mode to be porter duff and destination in
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
// Draw a rectangle using the paint with our linear gradient
canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()
+ reflectionGap, paint);
return bitmapWithReflection;
}
分享到:
相关推荐
Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子,需要的朋友可以参考一下
Android中各种图像格式转换(裁剪,旋转,缩放等一系列操作工具).zip Android中各种图像格式转换(裁剪,旋转,缩放等一系列操作工具).zip Android中各种图像格式转换(裁剪,旋转,缩放等一系列操作工具).zip ...
android手势处理图片平移、缩放和旋转 图片出界判断 处理后新图片的创建
图像等比例缩放 等比例缩放图片。。。。。。。。。。。。。。。。。。。。。。
Visual C++数字图像处理典型算法及实现中的图像缩放算法,缩放比例可以自己在程序中修改。
在放大或缩小图像时,如何能最好的保持图像原态比例来显示呢?下面提供一个涵数可帮你来实现,调用它后,返回的矩形区域既为最佳显示图像大小。
主要介绍了Python图像处理之图像的缩放、旋转与翻转实现方法,结合实例形式分析了Python使用resize()、rotate()及transpose()等函数进行图像的缩放、旋转及翻转相关操作技巧,需要的朋友可以参考下
一个图像处理系统 包括图像 旋转 缩放 高斯变换等等功能一个图像处理系统 包括图像 旋转 缩放 高斯变换等等功能一个图像处理系统 包括图像 旋转 缩放 高斯变换等等功能一个图像处理系统 包括图像 旋转 缩放 高斯变换...
在Android平台上研究了现有的图像缩放算法,分析了最近邻域算法和线性插值算法(双线性插值算法),分析其基本原理,算法流程及优劣,并决定采用线性插值算法实现基于Android平台的图像处理的图像缩放功能,通过数据...
java 处理图片大小等比例缩放;图片裁剪;支持图片压缩不失真;支持图片添加水印;支持动态图的处理;支持自定义图片大小的转换 等 压缩包中内附使用说明
android 翻页动画包含了10多种动画
该资源主要参考我的博客【数字图像处理】六.MFC空间几何变换之图像平移、镜像、旋转、缩放详解,博客地址http://blog.csdn.net/eastmount/article/details/46345299 主要讲述基于VC++6.0 MFC图像处理的应用知识,要...
Android 使用libyuv对Android yuv数据进行缩放,旋转,镜像,裁剪等操作
一个小例子,用来解决屏幕的自适应问题。例子里是一个自定义实现比例缩放的layout。
图像处理算法,包括图像的缩放,滤波,增强,锐化,旋转,反色等。c语言处理算法
常见的数字图像的几何变换包括平移、镜像、旋转、缩放和错切等,是图像处理软件必须具备的操作手段。本次实验的目的是要求掌握各种变换的基本原理和方法,能够运用Matlab编写程序,实现这些变换。其中,由于变化产生...
android 图片拼接 缩放 特效 拖动 翻转
使用javacv进行图像处理,对图片进行拉伸缩放、黑边填充缩放、图像翻转 同时对图片关联的YOLO格式注释数据进行缩放、翻转等操作