Android camera预览参数以及实际图像大小设置

2024-06-21 16:08

本文主要是介绍Android camera预览参数以及实际图像大小设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


参考一下两篇博文:

http://www.cnblogs.com/skyseraph/archive/2012/03/26/2418665.html


http://blog.csdn.net/yanzi1225627/article/details/7738736


###########################################################333

PreviewSize是预览的大小,也就是拍照前看到的图片大小

PictureSize是指最终拍摄到的图片的大小,也就是图片的质量


新建一个工程PictureDemo,默认空活动

完成后,在MainActivity上添加代码:

package com.administrator.picturedemo;import android.app.Activity;
import android.hardware.Camera;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;import java.util.List;public class MainActivity extends Activity {private final String TAG = "test";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Camera camera = Camera.open();List<Camera.Size> pictureSizes = camera.getParameters().getSupportedPictureSizes();List<Camera.Size> previewSizes = camera.getParameters().getSupportedPreviewSizes();for (int i=0; i<pictureSizes.size(); i++) {Camera.Size pSize = pictureSizes.get(i);Log.i(TAG+"-------initCamera", "---------------------PictureSize.width = "+pSize.width+"-----------------PictureSize.height = "+pSize.height);}for (int i=0; i<previewSizes.size(); i++) {Camera.Size pSize = previewSizes.get(i);Log.i(TAG+"--------initCamera", "--------------------previewSize.width = "+pSize.width+"-----------------previewSize.height = "+pSize.height);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();//noinspection SimplifiableIfStatementif (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}
}

在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.CAMERA" />

运行,在LogCat上自定义过滤器test,查看该过滤器得到



上图中的这些参数就是可以设置的previewSize和pictureSize大小

##################################3


获得了最终的图像,但是大小却不是我们希望的,所以想要去修改大小

实例程序,获得bitmap图像myBitmap,改为600x800大小的图像

        String readPath = "/sdcard/desktop.jpg";String writePah = "/sdcard/picSize.jpg";Bitmap myBitmap = BitmapFactory.decodeFile(readPath);File img = new File(writePah);try {img.createNewFile();FileOutputStream fos = new FileOutputStream(img);Bitmap endBit = Bitmap.createScaledBitmap(myBitmap, 600, 800, true); //创建新的图像大小endBit.compress(Bitmap.CompressFormat.PNG, 100, fos);fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}

如果不想修改结果大小,则将

            Bitmap endBit = Bitmap.createScaledBitmap(myBitmap, 600, 800, true); //创建新的图像大小endBit.compress(Bitmap.CompressFormat.PNG, 100, fos);

改为

            myBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);

即可


添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

这篇关于Android camera预览参数以及实际图像大小设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081690

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

SQL Server 查询数据库及数据文件大小的方法

《SQLServer查询数据库及数据文件大小的方法》文章介绍了查询数据库大小的SQL方法及存储过程实现,涵盖当前数据库、所有数据库的总大小及文件明细,本文结合实例代码给大家介绍的非常详细,感兴趣的... 目录1. 直接使用SQL1.1 查询当前数据库大小1.2 查询所有数据库的大小1.3 查询每个数据库的详

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda