您现在的位置是:首页 > 数码 > 正文

unity怎么添加camera Unity Android 之 移动端打开相机拍照并保存

发布时间:2022-05-20 17:20:20编辑:来源:

大家好,我是云百科的客服小柏,我来为大家解答以上问题。unity怎么添加camera,Unity,Android,之,移动端打开相机拍照并保存很多人还不知道,现在让我们一起来看看吧!

解答:

1、 打开团结,新建一个空工程,具体如下图

2、 在场景中添加一个原始图像(渲染相机图像),并且铺满画布,然后把帆布的渲染模式设置为屏幕空间-摄像机,其中渲染相机为主摄像头,具体如下图

3、 在工程中新建一个脚本,可以命名为"OpenCameraAndSaveImage",双击或者右键打开脚本进行编辑,具体如下图

4、 "OpenCameraAndSaveImage"的具体代码和代码说明如下图

5、 "OpenCameraAndSaveImage"脚本具体内容如下:

6、 使用系统。收藏;

7、 使用系统。木卫一;

8、 使用联合工程

9、 使用联合工程.UI;

10、 公共类OpenCameraAndSaveImage:MonoBehaviour{

11、 //用户界面相关参数

12、 公共原始图像

13、 公共按钮按钮_拍照

14、 //摄像机图片参数

15、 私有网络摄像头纹理网络摄像头纹理

16、 //使用它进行初始化

17、 voidStart(){

18、 //打开相机

19、 StartCoroutine('opencamera');

20、 //按钮绑定点击事件

21、 按钮_拍照。onclick。添加监听器(takepotoandsaveimage_Button);

22、 }

23、 ///摘要

24、 ///使用协程打开相机函数

25、 ////摘要

26、 ///返回/返回

27、 IEnumeratorOpenCamera(){

28、 //申请相机权限

29、 退货申请请求用户授权(用户授权.网络摄像头);

30、 //判断是否有相机权限

31、 如果(应用hasuserauthorization(用户授权.网络摄像头)){

32、 //获取相机设备

33、 网络摄像头设备[]网络摄像头设备=网络摄像头纹理。设备;

34、 //判断是否有相机设别

35、 if(webCamDevices!=空网络摄像机设备。长度0){

36、 //把0号设备(移动端后置摄像头)名称赋值

37、 stringwebCamName=webCamDevices[0].姓名;

38、 //设置相机渲染宽高,并运行相机

39、 webCamTexture=newwebCamTexture(webCamName,Screen.width,Screen。身高);

40、 网络摄像头纹理.play();

41、 //把获取的图像渲染到画布上

42、 原始图像。texture=webCamTexture

43、 }

44、 }

45、 }

46、 ///摘要

47、 ///拍照保存函数的包装接口

48、 ////摘要

49、 voidtakephotoandsaveimage_Button()

50、 {

51、 //调用拍照保存函数

52、 takepotoandsaveimage(webCamTexture);

53、 }

54、 ///摘要

55、 ///保存图片的接口函数

56、 ////摘要

57、 ///paramname='tex'/param

58、 voidtakephotoandsaveimage(WebCamTexturetex){

59、 //新建一个Texture2D来获取相机图片

60、 //然后把图片转成使用联合图象专家组文件交换格式存储的编码图像文件扩展名格式的字节

61、 Texture2Dtexture2D=新Texture2D(tex.width,tex.height,TextureFormat.RGBA32,真);

62、 纹理2D.设定像素32(特克斯.getpixels32());

63、 纹理2D.apply();

64、 byte[]imagebytes=texture2dencodeojpg();

65、 //判断图片字节是否为空

66、 if(imageBytes!=空图像字节.长度0){

67、 //判断机器人平台,进行对应路径设置

68、 字符串保存路径;

69、 字符串平台路径=应用程序。流式资源路径“/MyTempPhotos”;

70、 #如果UNITY_ANDROID!UNITY_EDITOR

71、 平台路径='/SD卡/DCIM/MyTempPhotos';

72、 #endif

73、 //如果文件夹不存在,就创建文件夹

74、 如果(!目录。存在(平台路径)){

75、 目录CreateDirectory(平台路径);

76、 }

77、 //保存图片

78、 保存路径=平台路径'/'时间。德尔塔时间.jpg';

79、 文件WriteAllBytes(保存路径,图像字节);

80、 }

81、 }

82、 }

83、 脚本编译正确,回到一致中,在帆布添加一个按钮,用来进行拍照保存图片的触发按钮,布局如下图

84、 把脚本挂载到主摄像机上,并对应给脚本赋值,具体如下图

85、 打开"文件"-"构建设置",把当前的场景添加进去,然后点击播放器设置.具体如下图

86、 在其他设置中的写权限设置为外部(标清卡),具体如下图

87、 然后,连接手机,打包安装到手机上,运行点击"拍照"按钮,即可实现机器人端打开相机,进行拍照保存,具体如下图

本文到此讲解完毕了,希望对大家有帮助。

标签:

上一篇
下一篇

最新文章