首页 > 其他分享 >androi studio bitmap 压缩后 图片方向异常

androi studio bitmap 压缩后 图片方向异常

时间:2024-03-07 13:26:23浏览次数:17  
标签:Matrix matrix bitmap ExifInterface studio androi null ORIENTATION

Android 使用 Camera2拍照后,获得 byte[] data,随后使用 BitmapFactory.decodeByteArray  压缩

导致图片方向异常

 

/*
* 避免出现方向异常
* */
public static Matrix getMatrix(byte[] data) {
		if (Build.VERSION.SDK_INT >= 24) {
				ExifInterface exif = null;
				try {
						exif = new ExifInterface(new ByteArrayInputStream(data));
				} catch (IOException e) {
						e.printStackTrace();
				}
				int orientation = ExifInterface.ORIENTATION_UNDEFINED;
				if (exif != null) {
						orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
				}
				Matrix matrix = new Matrix();
				switch (orientation) {
						case ExifInterface.ORIENTATION_ROTATE_90:
								matrix.postRotate(90);
								break;
						case ExifInterface.ORIENTATION_ROTATE_180:
								matrix.postRotate(180);
								break;
						case ExifInterface.ORIENTATION_ROTATE_270:
								matrix.postRotate(270);
								break;
						default:
								break;
				}
				return matrix;
		} else {
				return null;
		}
}

....
Matrix matrix = getMatrix(data);
if (matrix != null) {
		return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
} else {
		return bitmap;
}

  

 

标签:Matrix,matrix,bitmap,ExifInterface,studio,androi,null,ORIENTATION
From: https://www.cnblogs.com/uoky/p/18058669

相关文章

  • Android hexedit toybox tcsetattr /dev/pts/0: Permission denied
    cas:/$/data/local/tmp/toybox-aarch64hexedit/data/local/tmp/tree.statichexedit:tcsetattr/dev/pts/0:Permissiondenied 好像是不能用tcsetattr,selinux会拒绝 cas:/$ls-l/dev/ptsls:/dev/pts:Permissiondenied https://blog.zhanghai.me/fixing-line-e......
  • Android开发学习之路01
    今日跟着一个人进行了Androidstudio上创建数据库和数据表的联系,这应该是老师留的作业中,进行数据库的连接。原文链接:https://blog.csdn.net/fjh_xx/article/details/131404230一.前言二.SQLite数据库介绍1.什么是SQLite数据库2.特点3.SQLite操作API4.SQLite数据类型三.S......
  • android studio
    避坑:1.此处替换路径下载地址:https://mirrors.cloud.tencent.com/gradle/2.D:\app\gradle-6.7.1\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.8.10\2a38b258da57285fb187fc329f7374c0751576af此处下载对应文件后将原文件替换注意修改......
  • Android Room DataBase
     AndroidRoomDataBase(一)https://blog.csdn.net/l_o_s/article/details/79346426AndroidRoomDataBase(二)https://blog.csdn.net/l_o_s/article/details/79348701AndroidRoomDataBase(三)https://blog.csdn.net/l_o_s/article/details/79388408使用AndroidJetpack......
  • Android.mk 使用 dagger2
    #Managesuseofannotationprocessors.##Atthemomentboththe-processorpathandthe-processor#flagsmustbespecifiedinordertouseannotationprocessors#asacodeindexingtoolthatwrapsjavacdoesn'tasyetsupport#thesamebehaviouras......
  • Visual Studio部署C++环境下OpenCV库
      本文介绍在VisualStudio2022中配置、编译C++计算机视觉库OpenCV的方法。1OpenCV库配置  首先,我们进行OpenCV库的下载与安装。作为一个开源的库,我们直接在其官方下载网站中进行下载即可;如下图所示,我们首先选择需要下载的操作系统。  随后,即可在弹出的新界面中自动开......
  • AndroidStudio扫描局域网下的ESP32CAM并获取IP地址
    大概想法如下: 在ESP32CAM端直接下载示例代码udp_server这个历程,修改默认的WIFI和密码,启动之后会输出如下结果 由此我们知道了UDP的地址和端口IP地址为192.168.2.3,端口为3333此时我们使用小工具NetAssist.exe来测试,选择UDP协议之后向ESP32CAM的地址发送广播,如下图所示 ......
  • R-Studio Network
    数据恢复,第一次做这种题我们拿到的是一个zip文件,解压发现是一个001结尾的文件,应该是镜像的分卷表示格式我们把它放到7-zip中,发现大小只有76和12,而源文件有5个G,显示不对的,我们需要把原文件恢复出来,这里使用工具R-studioNetwork1、先加载镜像2、对镜像进行扫描,成功恢复......
  • Pokemon Go自動走路 iOS/Android 在家玩寶可夢不用出門 不用移動
    有時您可能想知道如何在不動的情況下玩PokemonGo。好消息是,我們將為您介紹PokemonGo自動步行,以偽造GPS位置。PokemonGo欺騙器將作為位置變換器引入。閱讀更多有關如何在PokemonGo中無需步行即可移動的方法。第1部分.是否可以不動地玩PokemonGO 在家玩寶可夢......
  • PDFBox-Android添加图片被遮挡
    使用pdfbox-android在已存在的pdf上面追加图片,需要先创建PDPageContentStream,在创建的时候需要注意设置模式为APPEND,并且将resetContext参数设置为truevalcs=PDPageContentStream(document,......