我创建了一个可以拍摄和保存照片的应用程序。 我在预览之上有预览和覆盖。 叠加定义了一个正方形(广场周围的区域显示预览有点暗),你可以在图片中看到:Android相机 - 如何从字节数组中获取特定的“矩形”?
我需要做的是提取图像的一部分广场在哪里。 广场定义如下:
Rect frame = new Rect(350,50,450,150);
我该怎么做?我有我可以保存的字节数组(byte []数据),但是我想更改应用程序,以便只保存正方形区域。
编辑:我曾尝试以下:
int[] pixels = new int[100000];
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data.length);
bitmap.getPixels(pixels, 0, 480, 350, 50, 100, 100);
bitmap = Bitmap.createBitmap(pixels, 0, 100, 100, 100, Config.ARGB_4444);
bitmap.compress(CompressFormat.JPEG, 0, bos);
byte[] square = bos.toByteArray();
然后写入阵列“广场”,以一个新的文件... 的问题是,我得到由线的照片......有是与我做的转换的问题
Epically简单的解决方案... http://stackoverflow.com/a/17733530/294884 – Fattie 2014-05-25 20:49:45
@Eyal所以你只是想从字节[]中裁剪矩形区域而不保存它们之间? – ashishdhiman2007 2017-02-02 09:49:50