三星手机拍照旋转问题

昵__称 2014-12-06 08:36:59
使用三星手机竖屏拍摄时所有图片都是横的,他在文件参数里有个旋转角度。网上有教程按那个角度旋转将图片转正。
可是有的三星手机正常有的不正常,出问题的地方是,读取到bitmap时使用Matrix旋转
returnBm = Bitmap.createBitmap(sourceBitmap, 0, 0, sourceBitmap.getWidth(), sourceBitmap.getHeight(), matrix, true);
在这一句会OOM,有一台三星手机拍摄尺寸为3264X2448。这台手机旋转时必出OOM
我用QQ拍摄照片没有问题。
请问有什么好的旋转方法么。
...全文
992 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
神州 2015-11-24
  • 打赏
  • 举报
回复
请问,那个旋转问题解决了吗?我也遇到这个问题了
  • 打赏
  • 举报
回复
使用libjpeg库,不过有点大,但不超过2M。
昵__称 2014-12-09
  • 打赏
  • 举报
回复
引用 7 楼 YKDSea 的回复:
[quote=引用 5 楼 u014387289 的回复:] [quote=引用 3 楼 YKDSea 的回复:] 1,app打开large heap看看。 2,这个做法的确不好,这个图太大了,两张图在内存里面,小内存的机器很可能出现oom。 不知道你要旋转图片做什么,一般都是用exif来记录旋转方向的,不需要把图像数据旋转。
引用 4 楼 Trent1985 的回复:
你可以读取exif里的旋转信息,然后进行纠正,这样就没问题了
三星竖着拍的照片导出到电脑看是转了90°,他里面exif有显示旋转角度。应该手机自己 的图片查看器可能有读取旋转角度,所以他看的是竖着的,但是我用ImageView显示的时候就转了。 这个该怎么版?[/quote] 1,试试imageview.setImageMatrix() 2,试试先把原bitmap缩小到显示尺寸,然后再去做旋转[/quote] imageview.setImageMatrix()用这个的问题是,每个Imageview都得手动转,而且不是每个都需要,太复杂了, 我好像只能缩小图片旋转了。
sky-Z 2014-12-08
  • 打赏
  • 举报
回复
1,app打开large heap看看。 2,这个做法的确不好,这个图太大了,两张图在内存里面,小内存的机器很可能出现oom。 不知道你要旋转图片做什么,一般都是用exif来记录旋转方向的,不需要把图像数据旋转。
「已注销」 2014-12-08
  • 打赏
  • 举报
回复
貌似最大分辨率不能超过2000左右的。具体是多大忘记了
打打卡夫卡 2014-12-08
  • 打赏
  • 举报
回复
1 关于你说的android 设备拍照旋转的问题,我之前遇到过,当时也很难做,最后解决了,是通过android 源码里面的自带一个类解决的 叫CameraConfigurationManager。这个类你去android的源码demo里面可以找到。 2 关于旋转oom的问题,这个我不是很清楚如何解决,需要详细分析一下原因。我觉得应该不是很难。 看你的源码的话,是在创建一个新的bitmap的时候导致的内存溢出。 这个也是可以避免的。 所以需要你自己设计一下如果避免一下。
sky-Z 2014-12-08
  • 打赏
  • 举报
回复
引用 5 楼 u014387289 的回复:
[quote=引用 3 楼 YKDSea 的回复:] 1,app打开large heap看看。 2,这个做法的确不好,这个图太大了,两张图在内存里面,小内存的机器很可能出现oom。 不知道你要旋转图片做什么,一般都是用exif来记录旋转方向的,不需要把图像数据旋转。
引用 4 楼 Trent1985 的回复:
你可以读取exif里的旋转信息,然后进行纠正,这样就没问题了
三星竖着拍的照片导出到电脑看是转了90°,他里面exif有显示旋转角度。应该手机自己 的图片查看器可能有读取旋转角度,所以他看的是竖着的,但是我用ImageView显示的时候就转了。 这个该怎么版?[/quote] 1,试试imageview.setImageMatrix() 2,试试先把原bitmap缩小到显示尺寸,然后再去做旋转
昵__称 2014-12-08
  • 打赏
  • 举报
回复
引用 1 楼 zmobs 的回复:
1 关于你说的android 设备拍照旋转的问题,我之前遇到过,当时也很难做,最后解决了,是通过android 源码里面的自带一个类解决的 叫CameraConfigurationManager。这个类你去android的源码demo里面可以找到。 2 关于旋转oom的问题,这个我不是很清楚如何解决,需要详细分析一下原因。我觉得应该不是很难。 看你的源码的话,是在创建一个新的bitmap的时候导致的内存溢出。 这个也是可以避免的。 所以需要你自己设计一下如果避免一下。
CameraConfigurationManager这个类在android源码中没找到,只在ZXING项目里面找到。
昵__称 2014-12-08
  • 打赏
  • 举报
回复
引用 3 楼 YKDSea 的回复:
1,app打开large heap看看。 2,这个做法的确不好,这个图太大了,两张图在内存里面,小内存的机器很可能出现oom。 不知道你要旋转图片做什么,一般都是用exif来记录旋转方向的,不需要把图像数据旋转。
引用 4 楼 Trent1985 的回复:
你可以读取exif里的旋转信息,然后进行纠正,这样就没问题了
三星竖着拍的照片导出到电脑看是转了90°,他里面exif有显示旋转角度。应该手机自己 的图片查看器可能有读取旋转角度,所以他看的是竖着的,但是我用ImageView显示的时候就转了。 这个该怎么版?
Trent1985 2014-12-08
  • 打赏
  • 举报
回复
你可以读取exif里的旋转信息,然后进行纠正,这样就没问题了

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧