本文实例讲述了Android开发实现去除bitmap无用白色边框的方法。分享给大家供大家参考,具体如下:
图示
如下图所示,之前介绍过Android Bitmap的用法,这里提供的工具类作用是,去除内容区域以外的白色边框。
代码
import android.graphics.Bitmap; /** * Created by Victor Yang on 2016/6/17. * 去除 bitmap 无用的白色边框 */ public class BitmapDeleteNoUseSpaceUtil { /** * 灰度化 bitmap * @param imgTheWidth * @param imgTheHeight * @param imgThePixels * @return */ private static Bitmap getGrayImg(int imgTheWidth, int imgTheHeight, int[] imgThePixels) { int alpha = 0xFF <<24; //设置透明度 for (int i = 0; i> 16); //获取红色灰度值 int green = ((grey & 0x0000FF00) >> 8); //获取绿色灰度值 int blue = (grey & 0x000000FF); //获取蓝色灰度值 grey = (int) ((float) red * 0.3 + (float) green * 0.59 + (float) blue * 0.11); grey = alpha | (grey <<16) | (grey <<8) | grey; //添加透明度 imgThePixels[imgTheWidth * i + j] = grey; //更改像素色值 } } Bitmap result = Bitmap.createBitmap(imgTheWidth, imgTheHeight, Bitmap.Config.RGB_565); result.setPixels(imgThePixels, 0, imgTheWidth, 0, 0, imgTheWidth, imgTheHeight); return result; } /** * 去除多余白框 * @param originBitmap * @return */ public static Bitmap deleteNoUseWhiteSpace(Bitmap originBitmap) { int[] imgThePixels = new int[originBitmap.getWidth() * originBitmap.getHeight()]; originBitmap.getPixels( imgThePixels, 0, originBitmap.getWidth(), 0, 0, originBitmap.getWidth(), originBitmap.getHeight()); // 灰度化 bitmap Bitmap bitmap = getGrayImg( originBitmap.getWidth(), originBitmap.getHeight(), imgThePixels); int top = 0; // 上边框白色高度 int left = 0; // 左边框白色高度 int right = 0; // 右边框白色高度 int bottom = 0; // 底边框白色高度 for (int h = 0; h = 0; w--) { boolean holdBlackPix = false; for (int h = 0; h = 0; h--) { boolean holdBlackPix = false; for (int w = 0; w
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android拍照与图片处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。