see*_*ema 7 customization camera android
我正在使用surfaceview和自定义视图打开相机.使用这个我成功地能够使用getSupportedPictureSizes()中的一个大小来点击图片.但我想要方形图片.现在我点击图片后裁剪它.在Android中可以显示方形图像明亮和剩余相机预览上的暗覆盖,并且在点击时,仅点击广场内的预览.这在iPhone中是可能的.但不知道如何在Android中做到这一点.任何帮助将受到高度赞赏.
是的,您可以用 2 个半透明矩形覆盖 SurfaceView 以剪出正方形。
您应该计算捕获的高分辨率图像的预期裁剪效果。例如,如果您的相机支持4368x2912的图片尺寸,则需要裁剪(mLeft=728、mTop=0、mWidth=2912、mHeight=2912)。
byte[]要将自定义裁剪应用于从onPictureTaken()接收到的Jpeg ,您有两个选择:简单或高效。
最简单的方法是将 Jpeg 数据解码为位图,
@Override
public void onPictureTaken(final byte[] data, Camera camera) {
Bitmap picture = BitmapFactory.decodeByteArray(data, 0, data.length);
picture = Bitmap.createBitmap(picture, mLeft, mTop, mWidth, mHeight);
picture.compress(Bitmap.CompressFormat.JPEG, 85, mFileOutputStream);
}
Run Code Online (Sandbox Code Playgroud)
缺点是速度可能很慢并且需要大量内存(12 MPixel 相机可能需要 60 MB)。
“智能”方法是使用 Jpeg 无损转换(例如,参见http://mediachest.sourceforge.net/mediautil/),使用少于 10 MB 的空间。请注意,这会施加一些限制,例如在上面的 12 MPixel 相机示例中,您可能需要 mLeft=720,因为 728 不能被 16 整除。
| 归档时间: |
|
| 查看次数: |
3283 次 |
| 最近记录: |