Android:Bitmap做图像处理
2018-04-25 本文已影响0人
千里同学
说到做图像处理,Bitmap(位图)大家都不陌生,因为它是图像处理中最重要的类之一。使用Bitmap可以对图像进行剪切等操作,是一个很强大,很实用的工具类,使用Bitmap类,我们往往会结合BitmapDrawable来使用,一般过程为:通过BitmapDrawable来获取图片资源,然后调用getBitmap()方法转换成Bitmap的对象,然后再对图片进行处理和绘制。
源代码:(码云:https://gitee.com/zhanma/codes/du9i0bwnpzas8k5om2gyh28)
这里直接给代码截图和效果图:
从72行开始这三个方法时继承自SurfaceView类必须重写的方法,故最后一个就不截图了,从图中可以看到我写了两个draw(分别是draw1()、draw2())。
draw1()是用来绘制原图的,不过由于原图实在太大,所以我给设置了图片的宽度。
draw2()也是用来绘制的,不过这次我剪切了图片的右半部分。
效果:
原图 剪切后的效果Tip:虽然我写了draw1()和draw2(),但是在调用的时候我这里是分别进行调用的,也就是一次只执行一个,另一个要注释掉。从代码中可以看到,每次调用draw(1或2)都要进行一次canvas(画布)的获取,并进行绘制,故如果两个同时执行的话,后面调用的draw2()会把draw1()覆盖,因为第二块画布把第一块给覆盖了。
在运行后,如果出现没有图片的情况,有可能是图片没有加载成功,不妨多运行几遍,或者也可能是Rect类或RectF类参数设置有问题,可以试着对需要修改的参数进行修改并运行,通过多次修改和运行来实现你想要的效果。