在Tizen中打开相机并拍照

作者:佚名 上传时间:2023-04-25 运行软件:Tizen SDK 软件版本:Tizen 3.0 版权申诉

在Tizen平台下使用相机API打开相机,并实现拍照功能。

#include <camera.h>

static char *file_path = "/opt/usr/media/Downloads/camera.jpg";

void camera_start_preview(void)
{
   camera_h camera;
   camera_error_e ret;
   camera_image_resolution_t resolution;
   camera_display_t  *display;

   ret = camera_create(CAMERA_DEVICE_CAMERA0, &camera);
   if (CAMERA_ERROR_NONE != ret) {
      dlog_print(DLOG_ERROR, "CAMERA_TEST", "camera_create failed.");
      return;
   }

   ret = camera_foreach_supported_preview_resolution(camera, _supported_preview_resolution_cb, &resolution);
   if (CAMERA_ERROR_NONE != ret) {
      dlog_print(DLOG_ERROR, "CAMERA_TEST", "camera_foreach_supported_preview_resolution failed.");
      camera_destroy(camera);
      return;
   }

   ret = camera_set_display_mode(camera, CAMERA_DISPLAY_MODE_LETTER_BOX);
   if (CAMERA_ERROR_NONE != ret) {
      dlog_print(DLOG_ERROR, "CAMERA_TEST", "camera_set_display_mode failed.");
      camera_destroy(camera);
      return;
   }

   ret = camera_start_preview(camera);
   if (CAMERA_ERROR_NONE != ret) {
      dlog_print(DLOG_ERROR, "CAMERA_TEST", "camera_start_preview failed.");
      camera_destroy(camera);
      return;
   }

   ret = camera_get_display(camera, &display);
   if (CAMERA_ERROR_NONE != ret) {
      dlog_print(DLOG_ERROR, "CAMERA_TEST", "camera_get_display failed.");
      camera_stop_preview(camera);
      camera_destroy(camera);
      return;
   }

   camera_image_quality_e quality;
   ret = camera_get_preview_quality(camera, &quality);
   if (CAMERA_ERROR_NONE != ret) {
      dlog_print(DLOG_ERROR, "CAMERA_TEST", "camera_get_preview_quality failed.");
   }

   ret = camera_capture(camera, true, _preview_capture_completed_cb, quality, file_path);
   if (CAMERA_ERROR_NONE != ret) {
      dlog_print(DLOG_ERROR, "CAMERA_TEST", "camera_capture failed.");
      camera_destroy(camera);
      return;
   }
}

static bool _supported_preview_resolution_cb(camera_image_resolution_t *resolution, void *user_data)
{
  camera_image_resolution_t *dest = (camera_image_resolution_t *)user_data;
  if (!dest) {
      return true;
  }

  if (resolution->width >= dest->width) {
     dest->width = resolution->width;
     dest->height = resolution->height;
  }

  return true;
}

static void _preview_capture_completed_cb(void *user_data)
{
   dlog_print(DLOG_DEBUG, "CAMERA_TEST", "capture completed.");
}

void camera_stop_preview(camera_h camera)
{
   camera_error_e ret = camera_stop_preview(camera);
   if (CAMERA_ERROR_NONE != ret) {
      dlog_print(DLOG_ERROR, "CAMERA_TEST", "camera_stop_preview failed.");
      return;
   }

   ret = camera_destroy(camera);
   if (CAMERA_ERROR_NONE != ret) {
      dlog_print(DLOG_ERROR, "CAMERA_TEST", "camera_destroy failed.");
      return;
   }
}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
Tizen
在Tizen平台下使用相机API打开相机,并实现拍照功能。#include <camera.h>static char *file_path = "/opt/usr/med
Tizen 3.0
Tizen SDK
2023-04-25 01:58
如何Android
本示例展示了如何在Android应用中打开相机并拍照。通过调用系统相机Intent并获取拍摄结果,可轻松地实现在应用中添加相机功能。// 创建一个用于存放拍照结果的文件File photoFile
Android 9.0 (Pie)
Android Studio
2023-04-22 05:20
如何Tizen设备上进行
本示例代码展示了如何在Tizen设备上使用Camera API打开相机并进行拍照。利用Tizen Web API,可以轻松地在Tizen手机或平板电脑上拍摄照片。(注释和打印使用中文进行代码注解)
Tizen 4.0
Tizen Studio
2023-05-30 02:07
Flutter如何
本示例展示了如何在Flutter应用中使用相机功能,实现拍照并将图片保存到本地。通过调用camera插件可以轻松实现,在此基础上再进行一些简单的处理,可满足日常开发所需。import 'packag
Flutter v2.10.0
Visual Studio Code
2023-04-28 11:54
使用Cordova
本示例展示了如何在Cordova中使用Camera插件来打开手机的照相机,拍摄照片并在应用程序中显示照片预览图。 //等待Cordova设备加载完毕document.addEventListene
Cordova 9.0.0
Visual Studio Code
2023-04-12 11:27
如何Windows Mobile应用程序
本示例代码通过调用系统API实现在Windows Mobile应用程序中打开照相机拍照。其中包括获取照片后的处理方法。//创建照相机对象CameraCaptureDialog cameraCapt
Windows Mobile 6.5
Visual Studio 2008
2023-03-24 01:25
BlackBerry通过代码
通过使用BlackBerry的Camera和File API,可以在代码中打开设备的相机并拍摄照片,然后将照片保存到设备的文件系统中。Camera camera = Camera.getInstan
BlackBerry OS 5.0以上
Eclipse、BlackBerry JDE
2023-03-27 21:34
Ionic保存图片
本示例展示了如何在Ionic应用中使用Cordova插件打开设备的相机,拍照并保存图片到设备。import { Camera, CameraOptions } from '@ionic-native
Ionic 4
Visual Studio Code
2023-11-05 18:28
通过C#Windows Mobile设备上
本示例代码演示了如何使用C#编写程序,在Windows Mobile设备上打开相机并进行拍照操作。通过调用Windows Mobile系统提供的API实现。using System.Runtime.
Windows Mobile 6
Visual Studio 2008
2023-04-02 06:38
使用Cordova将其应用程序显示
这个示例代码展示了如何使用Cordova打开设备的相机,拍摄照片并将其显示在应用程序中。先检查是否有相机权限,如果有权限,则打开相机,允许用户拍照,否则请求用户授权。拍摄照片后,将其转换为Base64
Cordova 9.0.0
HTML、CSS、JavaScript
2023-03-13 01:28