canvas教程

请教android图片处理技巧

字号+ 作者:H5之家 来源:H5之家 2015-10-15 12:41 我要评论( )

16个回答 引用12楼xiaobeiweng的回复:Quote: 引用2楼youngc527的回复: 创建一个800×480的Bitmap Bitmapbitmap=Bitmap.createBitmap... publicclassMyViewextendsView{ ... } 是不是这个,但是测试时没有显示 引用10楼u010749756的回复:Quote: 引用2楼youngc

16个回答

引用 12 楼 xiaobeiweng 的回复:Quote: 引用 2 楼 youngc527 的回复:
创建一个800×480的 Bitmap
    Bitmap bitmap = Bitmap.createBitmap ...
public class MyView extends View {
...
}

是不是这个,但是测试时没有显示


引用 10 楼 u010749756 的回复:Quote: 引用 2 楼 youngc527 的回复:
创建一个800×480的 Bitmap
    Bitmap bitmap = Bitmap.createBitmap ...
Bitmap bitmap = Bitmap.createBitmap(800, 480, Config.ARGB_8888);//创建一个800*480的背景!
Canvas canvas = new Canvas(bitmap);//创建一个Canvas
canvas.drawBitmap(bitmap , matrix, paint);  //好像没有一个方法能将原图绘制上去



private Bitmap scale(Bitmap origin) {
Bitmap bitmap = Bitmap.createBitmap(800, 480, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Rect target = null;
int orgWidth = origin.getWidth(), orgHeight = origin.getHeight();
int bgHeight = bitmap.getHeight(), bgWidth = bitmap.getWidth();
if (orgWidth * bgHeight > orgHeight * bgWidth) {
int newWidth = bgWidth, newHeight = newWidth * orgHeight / orgWidth;
target = new Rect(0, (bgHeight - newHeight) / 2, newWidth, (bgHeight + newHeight) / 2);
} else {
int newHeight = bgHeight, newWidth = newHeight * orgWidth / orgHeight;
target = new Rect((bgWidth - newWidth) / 2, 0, (bgWidth + newWidth) / 2, newHeight);
}
canvas.drawBitmap(origin, null, target, new Paint(Paint.DITHER_FLAG | Paint.FILTER_BITMAP_FLAG));
return bitmap;
}

2013-10-30 16:56:02 youngc527 13楼

背景可以自定义

2013-10-28 16:45:41 u010749756 1楼

创建一个800×480的 Bitmap
    Bitmap bitmap = Bitmap.createBitmap ...
创建一个Canvas
    Canvas canvas = new Canvas(bitmap)
计算一下中间的位置,把原图画上去
    canvas.drawBitmap ...
如果需要,把bitmap保存成JPG/PNG,质量选高点
    bitmap.compress ...

2013-10-28 17:41:41 youngc527 2楼

2楼正解,layout可以用ImageView,属性设置成fitY,或者center

2013-10-28 23:38:03 winteror 3楼

归根到底,是对图片做了一次缩放算法!

2013-10-29 09:03:12 xidianstudent 4楼

引用 4 楼 xidianstudent 的回复:归根到底,是对图片做了一次缩放算法!
求详细算法代码

2013-10-29 11:15:33 u010749756 5楼

引用 2 楼 youngc527 的回复:创建一个800×480的 Bitmap
    Bitmap bitmap = Bitmap.createBitmap ...
创建一个Canvas
    Canvas canvas = new Canvas(bitmap)
计算一下中间的位置,把原图画上去
    canvas.drawBitmap ...
如果需要,把bitmap保存成JPG/PNG,质量选高点
    bitmap.compress ...

大哥,可否再详细点

2013-10-29 11:53:29 u010749756 6楼

试试这个方法
/** 
     * 图片缩放 
     * @param bigimage 
     * @param newWidth 
     * @param newHeight 
     * @return 
     */  
    public Bitmap tochange(Bitmap bigimage,int newWidth,int newHeight){  
        // 获取这个图片的宽和高  
        int width = bigimage.getWidth();  
        int height = bigimage.getHeight();  
        // 创建操作图片用的matrix对象  
        Matrix matrix = new Matrix();  
        // 计算缩放率,新尺寸除原始尺寸  
        float scaleWidth = ((float) newWidth)/width;  
        float scaleHeight = ((float) newHeight)/height;  
        // 缩放图片动作  
        matrix.postScale(scaleWidth, scaleHeight);  
        Bitmap bitmap = Bitmap.createBitmap(bigimage, 0, 0, width, height,matrix, true);  
        return bitmap;  
    }  

2013-10-29 14:22:05 yudajun 7楼

创建一个空的Bitmap,然后使用该bitmap创建画布,把原来的图片缩放后,绘制在这个画布上。

2013-10-29 14:51:03 BuleRiver 8楼

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • Canvas与ValueAnimator

    Canvas与ValueAnimator

    2017-04-28 18:00

  • Android Bitmap和Canvas学习笔记(转)

    Android Bitmap和Canvas学习笔记(转)

    2017-04-28 17:00

  • 21天学习android开发教程之SurfaceView与多线程的混搭

    21天学习android开发教程之SurfaceView与多线程的混搭

    2017-04-27 12:00

网友点评