RT,现在用camera拍照,将照片内容做区域截取并保存。
调用camera的takePicture(shutterCallback, null, jpegCallback);照相,在
jpegCallback的onPictureTaken回调函数中处理数据。 public void onPictureTaken(byte[] data, Camera camera) {
Rect rect = new Rect();
rect = myView.getSelectedRect();//获取要截取的图片区域
Parameters ps = camera.getParameters();
if(ps.getPictureFormat() == PixelFormat.JPEG){
Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); //转为bitmap
Bitmap mBitmapSelectBitmap = mBitmap.createBitmap(mBitmap, rect.left,
rect.top, rect.width(), rect.height());//按照指定区域创建位图
byte []btTmp =Bitmap2Bytes(mBitmapSelectBitmap); //将位图转为byte数组
mBitmapSelectBitmap.recycle();
mBitmap.recycle();
}
}
这样操作后,我将截取的图像写在文件里,打开发现并不是程序中指定截取的那块图像。不知道是哪儿出的问题。//这是转数组的函数
private static byte[] Bitmap2Bytes(Bitmap bm){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 80, baos);
return baos.toByteArray();
} 各位帮着看看吧~多谢了~~~~
调用camera的takePicture(shutterCallback, null, jpegCallback);照相,在
jpegCallback的onPictureTaken回调函数中处理数据。 public void onPictureTaken(byte[] data, Camera camera) {
Rect rect = new Rect();
rect = myView.getSelectedRect();//获取要截取的图片区域
Parameters ps = camera.getParameters();
if(ps.getPictureFormat() == PixelFormat.JPEG){
Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length); //转为bitmap
Bitmap mBitmapSelectBitmap = mBitmap.createBitmap(mBitmap, rect.left,
rect.top, rect.width(), rect.height());//按照指定区域创建位图
byte []btTmp =Bitmap2Bytes(mBitmapSelectBitmap); //将位图转为byte数组
mBitmapSelectBitmap.recycle();
mBitmap.recycle();
}
}
这样操作后,我将截取的图像写在文件里,打开发现并不是程序中指定截取的那块图像。不知道是哪儿出的问题。//这是转数组的函数
private static byte[] Bitmap2Bytes(Bitmap bm){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 80, baos);
return baos.toByteArray();
} 各位帮着看看吧~多谢了~~~~
解决方案 »
- 为什么android edittext只有一条蓝线啊,怎么解决?
- android中支持双camera问题
- eclipse调试android遇到的的问题
- 小妹继续提问在Notification显示下载列表问题。
- PackageManager的Features设置问题
- Android可以使用一个xml文件做连接数据库的配置文件吗?
- Android 的WebView不能通过中国移动的WAP认证,UC可以,怎么解决?
- Launcher中的AppsCustomizePagedView.java问题
- 关于android http协议请求错误问题
- 200分求视频免费试看的解决方案
- android的一个奇怪问题,照相机拍两次就无响应
- 新手问题 GridView做的菜单栏 如何实现在多个Activity跳转,菜单栏一直保持在底部
首先在设置camera参数时,
//设置预览照片的大小
setPreviewSize是768x432//通过调用camera的getPreviewSize获取到的
//设置拍摄图片的大小
setPictureSize是1024x768//通过camera的getPictureSize获取到的,还有其他几种可以指定,不能自定义
我在自定义的view上进行截取图片上的一段区域,但是这个view的getDefaultDisplay是533x320
所以我截取到的区域位置也是按照这个区域大小算的,但是真正的图片是1024x768的,我不想压缩,怕失真,所以只能按比例来修正坐标了。
多谢! gestapo#126.com