更新时间:2026-02-28 00:48:21下载pdf


bk_printf("swimming take phone \r\n");
BYTE_T *image_data = NULL;
UINT_T image_size = 0;
OPERATE_RET rt = OPRT_OK;
TUYA_CALL_ERR_LOG(tuya_ai_toy_camera_start());
// 这里sleep 2000是用于将摄像头图形投送到屏幕,可以简单调整一下拍摄内容
tal_system_sleep(3000);
rt = tuya_ai_toy_camera_get_jpeg_frame(&image_data, &image_size, NULL);
if (OPRT_OK != rt)
{
TAL_PR_ERR("get jpeg frame err, rt:%d", rt);
return;
}
// 保存图片到文件系统
swimming_save_photo_to_file(image_data, image_size);
tal_free(image_data);
TUYA_CALL_ERR_LOG(tuya_ai_toy_camera_stop());
#include "ty_gui_fs.h"
#define PHOTO_FILE_PATH "photo.jpg"
OPERATE_RET swimming_save_photo_to_file(const BYTE_T *image_data, UINT_T image_size)
{
if (!image_data || image_size == 0)
{
TAL_PR_ERR("swimming Invalid image data parameters \r\n");
return OPRT_INVALID_PARM;
}
OPERATE_RET rt = OPRT_OK;
BOOL_T is_exist = FALSE;
rt = tkl_fs_is_exist(PHOTO_FILE_PATH, &is_exist);
if (rt == OPRT_OK && is_exist)
{
tkl_fs_remove(PHOTO_FILE_PATH);
}
// 创建并打开jpg文件
TUYA_FILE file_hdl = tkl_fopen(PHOTO_FILE_PATH, "w");
if (file_hdl == NULL)
{
TAL_PR_ERR("swimming Failed to create file %s", PHOTO_FILE_PATH);
return OPRT_FILE_OPEN_FAILED;
}
// 写入数据到jpg文件
INT_T write_len = tkl_fwrite(image_data, image_size, file_hdl);
if (write_len != (INT_T)image_size)
{
TAL_PR_ERR("swimming Failed to write data to file %s, expected %d bytes, wrote %d bytes",PHOTO_FILE_PATH, image_size, write_len);
tkl_fclose(file_hdl);
return OPRT_COM_ERROR;
}
// 关闭文件
rt = tkl_fclose(file_hdl);
if (rt != OPRT_OK)
{
TAL_PR_ERR("swimming Failed to close file %s, rt = %d", PHOTO_FILE_PATH, rt);
return rt;
}
TAL_PR_NOTICE("swimming Photo saved successfully: %s (%d bytes)", PHOTO_FILE_PATH, image_size);
return OPRT_OK;
}


该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈