`
clf_dragon
  • 浏览: 3184 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android 图像处理(类型转换,比例缩放,倒影,圆角)(转)

阅读更多
引用
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开发中,图像处理是一项常见的任务,涵盖了各种操作,如类型转换、比例缩放、创建倒影和制作圆角图像。以下是对这些知识点的详细解释: 1. **比例缩放图片**: 在Android中,可以使用`Bitmap`类提供的...

    Android编程中图片特效处理方法小结

    本文将深入探讨Android中图片转换、缩放、圆角以及倒影等特效的实现方法。 首先,我们来看一下如何将`Drawable`转换为`Bitmap`。在Android中,`Drawable`是一个抽象类,它代表了屏幕上的可视元素,而`Bitmap`则是一...

    Android高手进阶教程(二十二)之Android中几种图像特效处理的集锦汇总!!

    本篇文章将探讨几个常见的图像处理技术,包括创建圆角、制作倒影、图片缩放以及在Drawable与Bitmap之间的转换。 首先,让我们来讨论如何创建圆角图片。在Android中,我们可以通过使用Bitmap类和Canvas类来实现这一...

    android Bitmap用法总结

    Bitmap是Android平台中用于处理图像的核心类,它用于表示位图图像数据。下面是对Bitmap用法的详细总结: 1. **Drawable转换为Bitmap**: 当我们需要将一个Drawable对象(如从XML布局文件中加载的图像)转换为...

    图片处理Demo

    在Android开发中,图片处理是一项常见的任务,尤其在创建..."图片处理Demo"项目提供了一个学习和参考的实例,帮助开发者更好地理解和运用这些图像处理技术。通过深入研究和实践,可以进一步优化性能,提升用户体验。

    ImageUtils

    根据提供的描述,我们可以了解到 `ImageUtils` 支持的功能包括但不限于:缩放图片、裁剪图片、倾斜图片、旋转图片、将图片转换为圆形或圆角图片、添加倒影、添加文字或图片水印以及快速模糊等。接下来,我们将深入...

    Android 轻松实现图片倒影效果实例代码

    这些方法分别用于Drawable到Bitmap的转换、Bitmap的缩放、创建圆角Bitmap以及创建倒影Bitmap。 在实际开发中,我们可以通过类似的方式实现其他视觉效果,比如模糊、裁剪、滤镜等。理解并掌握这些基本的图像处理方法...

    bitmap图片处理工具类

    "获得圆角图片"涉及到复杂的图像处理,通常有两种方法:一是使用`PorterDuff.Mode.CLEAR`模式画布裁剪,二是利用`Shader`的`BitmapShader`类配合`Paint`的`setShader()`方法,创建圆形或圆角矩形的遮罩。 "绘制带...

    图片的各种效果的处理

    1. **图片缩放**:Android提供了多种方法进行图片缩放,如`Bitmap.createScaledBitmap()`函数,可以按照指定的宽高比例对图片进行缩放,保持图片原有的宽高比。 2. **图片圆角**:要实现圆角图片,通常需要自定义`...

    ImageViewType.zip

    在Android开发中,ImageView是展示图像的常用组件,它提供了多种方式来处理和展示图片,如缩放、裁剪和旋转等。`ImageViewType.zip`这个压缩包可能包含了一个示例项目,展示了如何灵活地使用ImageView及其扩展功能。...

Global site tag (gtag.js) - Google Analytics