图纸是怎么如何分辨东西南北方向方向

Android图片处理:识别图像方向并显示实例教程
字体:[ ] 类型:转载 时间:
在Android中使用ImageView显示图片的时候发现图片显示不正,方向偏了或者倒过来了,下面与大家分享下具体的解决方法,感性的朋友可以参考下
在Android中使用ImageView显示图片的时候发现图片显示不正,方向偏了或者倒过来了。 解决这个问题很自然想到的分两步走: 1、自动识别图像方向,计算旋转角度; 2、对图像进行旋转并显示。一、识别图像方向 首先在这里提一个概念EXIF(Exchangeable Image File Format,可交换图像文件),具体解释参见Wiki。 简而言之,Exif是一个标准,用于电子照相机(也包括手机、扫描器等)上,用来规范图片、声音、视屏以及它们的一些辅助标记格式。 Exif支持的格式如下: 图像 压缩图像文件:JPEG、DCT 非压缩图像文件:TIFF 不支持:JPEG 2000、PNG、GIF 音频 RIFF、WAV Android提供了对JPEG格式图像Exif接口支持,可以读取JPEG文件metadata信息,参见ExifInterface. 这些Metadata信息总的来说大致分为三类:日期时间、空间信息(经纬度、高度)、Camera信息(孔径、焦距、旋转角、曝光量等等)。二、图像旋转 Android中提供了对Bitmap进行矩阵旋转的操作,参见Bitmap提供的静态createBitmap方法.&public static
createBitmap ( source, int x, int y, int width, int height,
m, boolean filter)& if the x, y, width, height values are outside of the dimensions of the source bitmap.& 到此这两个问题理论上都解决了,开始实际操作一下吧,参照以下代码。
代码如下: public class IOHelper { ...... /** 从给定路径加载图片*/ public static Bitmap loadBitmap(String imgpath) { return BitmapFactory.decodeFile(imgpath); } /** 从给定的路径加载图片,并指定是否自动旋转方向*/ public static Bitmap loadBitmap(String imgpath, boolean adjustOritation) { if (!adjustOritation) { return loadBitmap(imgpath); } else { Bitmap bm = loadBitmap(imgpath); int digree = 0; ExifInterface exif = try { exif = new ExifInterface(imgpath); } catch (IOException e) { e.printStackTrace(); exif = } if (exif != null) { // 读取图片中相机方向信息 int ori = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED); // 计算旋转角度 switch (ori) { case ExifInterface.ORIENTATION_ROTATE_90: digree = 90;
case ExifInterface.ORIENTATION_ROTATE_180: digree = 180;
case ExifInterface.ORIENTATION_ROTATE_270: digree = 270;
default: digree = 0;
} } if (digree != 0) { // 旋转图片 Matrix m = new Matrix(); m.postRotate(digree); bm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), m, true); }
} } ...... }
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具15080人阅读
Mobile(9)
Java(18)
在Android中使用ImageView显示图片的时候发现图片显示不正,方向偏了或者倒过来了。
解决这个问题很自然想到的分两步走:
1、自动识别图像方向,计算旋转角度;
2、对图像进行旋转并显示。
一、识别图像方向
& & & & 首先在这里提一个概念EXIF(Exchangeable Image File Format,可交换图像文件),具体解释参见。
简而言之,Exif是一个标准,用于电子照相机(也包括手机、扫描器等)上,用来规范图片、声音、视屏以及它们的一些辅助标记格式。
Exif支持的格式如下:
& 压缩图像文件:JPEG、DCT & & & &&
& 非压缩图像文件:TIFF
& & & 不支持:JPEG 2000、PNG、GIF &
& RIFF、WAV
Android提供了对JPEG格式图像Exif接口支持,可以读取JPEG文件metadata信息,参见.
& & & & 这些Metadata信息总的来说大致分为三类:日期时间、空间信息(经纬度、高度)、Camera信息(孔径、焦距、旋转角、曝光量等等)。
二、图像旋转
Android中提供了对Bitmap进行矩阵旋转的操作,参见Bitmap提供的静态方法.
public static&&createBitmap&(&source,
int x, int y, int width, int height,&&m, boolean filter)
到此这两个问题理论上都解决了,开始实际操作一下吧,参照以下代码。
public class IOHelper {
/** 从给定路径加载图片*/
public static Bitmap loadBitmap(String imgpath) {
return BitmapFactory.decodeFile(imgpath);
/** 从给定的路径加载图片,并指定是否自动旋转方向*/
public static Bitmap loadBitmap(String imgpath, boolean adjustOritation) {
if (!adjustOritation) {
return loadBitmap(imgpath);
Bitmap bm = loadBitmap(imgpath);
int digree = 0;
ExifInterface exif =
exif = new ExifInterface(imgpath);
} catch (IOException e) {
e.printStackTrace();
if (exif != null) {
// 读取图片中相机方向信息
int ori = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_UNDEFINED);
// 计算旋转角度
switch (ori) {
case ExifInterface.ORIENTATION_ROTATE_90:
digree = 90;
case ExifInterface.ORIENTATION_ROTATE_180:
digree = 180;
case ExifInterface.ORIENTATION_ROTATE_270:
digree = 270;
digree = 0;
if (digree != 0) {
// 旋转图片
Matrix m = new Matrix();
m.postRotate(digree);
bm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(),
bm.getHeight(), m, true);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:267983次
积分:3084
积分:3084
排名:第9505名
原创:56篇
评论:74条
(1)(1)(1)(1)(1)(1)(1)(3)(4)(5)(12)(1)(1)(2)(2)(2)(2)(3)(3)(4)(2)(1)(1)(2)(2)查看: 回复:3
怎么看汽车导航图,方向是怎么表示的[待解决]
您好,精华帖至少要有15张图片,文字不少200个字!并且是原创内容,布局合理。
自动加载图片
楼主 电梯直达 楼
怎么看汽车导航图,方向是怎么表示的
官方价:7.59-14.69万
推荐专题:
申请精华帖
您的申请已经提交,请耐心等待审核
1、审核通常是1-3个工作日
2、审核结果我们会通过系统消息给您答复
申请精华帖
您已经超过申请限制,不可再申请
您的申请连续三次被驳回,已经无法再申请精华帖,谢谢你对我们的支持!如有疑问,可以
申请精华帖
您有发现精华的慧眼,赞一个!
1、我们会在1-3个工作日内完成审核
申请精华帖
此贴已经申请精华中,谢谢您的支持!
1、我们会在1-3个工作日内完成审核
申请精华帖
您好,该帖子经过审核后,发现内容不符合精华要求,无法申请成为精华,谢谢你的支持!
申请精华帖
抱歉,帖子还没达到精华标准
精华帖至少要有15张图片,文字不少于200个字!您的帖子未达到要求,不能申请精华。
参考说明书。
一般有两种,一是像普通地图一样上北下南左西右东,再有是按照你行车的方向,一直保持向上(前)如有帮助希望采纳最佳,多谢了!
最好看一下使用说明
您需要登录后才可以发帖
大众Polo更多相关问题
回复成功!积分+2
请输入内容}

我要回帖

更多关于 东南西北方向怎么分辨 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信