- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我关注了 Google CameraX code lab实现自定义相机。相机预览很好,但是当我在图像捕获图像旋转后拍摄图像时。我正在以纵向模式拍摄图像,但保存的图像是横向的。这是配置相机的方法
private fun startCamera() {
val cameraProviderFuture = ProcessCameraProvider.getInstance(this)
cameraProviderFuture.addListener(Runnable {
// Used to bind the lifecycle of cameras to the lifecycle owner
val cameraProvider: ProcessCameraProvider = cameraProviderFuture.get()
// Preview
val preview = Preview.Builder()
.setTargetRotation(this.windowManager.defaultDisplay.rotation)
.build()
.also {
it.setSurfaceProvider(viewFinder.createSurfaceProvider())
}
imageCapture = ImageCapture.Builder()
.setTargetRotation(this.windowManager.defaultDisplay.rotation)
.build()
val imageAnalyzer = ImageAnalysis.Builder()
.build()
.also {
it.setAnalyzer(cameraExecutor, LuminosityAnalyzer { luma ->
Log.d(TAG, "Average luminosity: $luma")
})
}
// Select back camera as a default
val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
try {
// Unbind use cases before rebinding
cameraProvider.unbindAll()
// Bind use cases to camera
cameraProvider.bindToLifecycle(
this, cameraSelector, preview, imageCapture, imageAnalyzer)
} catch(exc: Exception) {
Log.e(TAG, "Use case binding failed", exc)
}
}, ContextCompat.getMainExecutor(this))
}
这是捕获图像的方法:
private fun takePhoto() {
val imageCapture = imageCapture ?: return
// Create time-stamped output file to hold the image
val photoFile = File(
outputDirectory,
SimpleDateFormat(FILENAME_FORMAT, Locale.US
).format(System.currentTimeMillis()) + ".jpg")
// Create output options object which contains file + metadata
val outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).build()
// Set up image capture listener, which is triggered after photo has
// been taken
imageCapture.takePicture(
outputOptions, ContextCompat.getMainExecutor(this), object : ImageCapture.OnImageSavedCallback {
override fun onError(exc: ImageCaptureException) {
Log.e(TAG, "Photo capture failed: ${exc.message}", exc)
}
override fun onImageSaved(output: ImageCapture.OutputFileResults) {
val savedUri = Uri.fromFile(photoFile)
val msg = "Photo capture succeeded: $savedUri"
val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, savedUri)
ivCapturedImage.setImageBitmap(bitmap)
setCaptureUI(false)
Log.d(TAG, msg)
}
})
}
使用EXIF拍摄后我需要自己旋转图像还是我可以在配置相机时修复它?
最佳答案
默认情况下,ImageCapture 将捕获的方向设置为显示旋转。如果图像保存到磁盘,旋转将在 EXIF 中。
您的设备是否处于锁定纵向模式?在这种情况下,显示旋转与设备的方向不匹配,您需要自己设置目标旋转。例子。
// The value is whatever the display rotation should be, if the device orientation is not locked.
imageCapture.setTargetRotation(...)
或者,您可以简单地使用
LifecycleCameraController API。它为您处理轮换,并以所见即所得的方式使所有用例保持一致。
关于Android CameraX 图像旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63921260/
我正在尝试在方向更改时实现平稳过渡,就像普通相机应用程序所做的那样(图标旋转,相机 View 不闪烁)。 我已经通过设置 ROTATION_ANIMATION_CROSSFADE 完成了图标旋转部分,
当我进入示例应用程序代码时,提到在创建项目时选择 Kotlin。 我以前使用过camera2 API。 最佳答案 如果您的意思是开发基于camerax 的应用程序。 你可以使用java。他们甚至在 J
我想将 CameraX 预览从 previewView 转换为位图。类似于 textureView.bitmap 的东西 我已经用 textureview 试过了,效果很好,我可以截取 camerav
我尝试使用 Android 开发人员 documentation 使用 CameraX 实现 MLKit 文本分析器.我的期望是分析器将在每一帧上运行,但它只运行一次,当预览初始化时。文本由 MLKi
我尝试使用 CameraView。我是 Android 的初学者。我阅读了一些关于类的文章和信息,但我无法让它发挥作用。 我有以下错误: Caused by: java.lang.IllegalSta
请,有人可以提供使用带有 GLSurfaceView 的 CameraX 库的好例子,找不到任何信息。 最佳答案 不存在将 CameraX 与自定义表面/TextureView 一起使用的文档。在 C
我关注了 Google CameraX code lab实现自定义相机。相机预览很好,但是当我在图像捕获图像旋转后拍摄图像时。我正在以纵向模式拍摄图像,但保存的图像是横向的。这是配置相机的方法 pri
我使用以下版本的 CameraX 依赖项: implementation "androidx.camera:camera-camera2:1.0.0-beta04" implementation "a
对于涉及光学相机通信 (OCC) 的研究项目,我需要主动分析视频帧,我目前正在使用 python 和 opencv 在我的电脑上离线进行分析(我用智能手机录制视频,然后进行处理) .我想使用我的三星
我正在尝试使用 camerax 拍摄多张照片,但只拍摄了第一张照片,代码和日志输出将显示我的意思。 这是代码: Log.d(TAG, "------------------ takin
我正在迁移到 cameraX 并遇到异常 androidx.camera.core.InitializationException: java.lang.RuntimeException: Error
我想实现一个自定义 View ,它将使用 Camera X API 显示实时预览,但我坚持使用 Camera X 的配置... 基于CameraX sample code ,我尝试实现我的自定义 Vi
我正在尝试编写我的第一个 Android 相机应用程序,但它总是选择变焦相机而不是主相机。 (我在华为 P30 Pro 上测试过) 并且代码基于官方的camerax示例应用程序(https://git
我正在使用 cameraX 录制视频。我需要使用 android-gpuimage 将实时滤镜应用于相机预览或任何其他图书馆。可能吗?如果是,请提供一个例子。 @SuppressLint("R
我在 Android 中使用带有 Firebase ML Kit 的新库 CameraX,并在设备可以检测的每一帧中检测人脸。 所以我这样设置 CameraX: CameraX.bindToLifec
我实现了一个新示例,这里是 a link它描述了来自 Google codelabs 的新 CameraX api,但 TextureView 没有显示任何内容并抛出下一个异常: OpenGLRend
因此,我从使用传统相机 API 迁移到 CameraX,尽管它的设置非常简单,但我注意到了一个问题。现在相机似乎比以前花费了几乎两倍甚至更长的时间来开始显示预览。我正在测试 galaxy s7。我的代
我正在尝试遵循我在网络上找到的代码示例(Gabriel Tanner、Ray Wenderlich、Official Introduction),但我通常在第一行就遇到困难: CameraX.
我的用例是一次拍摄两张图像。第一个是 2 倍变焦,第二个是 1 倍变焦。另外,我想将图像保存到文件中。 我的想法是以 2 倍变焦拍摄第一张图像,并在保存图像时将变焦级别设置为 1 倍,并在镜头变焦到
我正在使用 camerax 在我的 android 应用程序中捕获图像。 对我来说一切都很好,但是一些用户在使用 camerax Activity 时报告黑色预览屏幕。 但是当用户从最近的应用程序中打
我是一名优秀的程序员,十分优秀!