From dd7c75d0d989835c1437e0cfa071408a23d993cd Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期一, 01 十二月 2025 15:37:54 +0800
Subject: [PATCH] 1.usb添加水印

---
 usbcameralib/src/main/cpp/watermark.cpp |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/usbcameralib/src/main/cpp/watermark.c b/usbcameralib/src/main/cpp/watermark.cpp
similarity index 90%
rename from usbcameralib/src/main/cpp/watermark.c
rename to usbcameralib/src/main/cpp/watermark.cpp
index b15d9f6..1a73e64 100644
--- a/usbcameralib/src/main/cpp/watermark.c
+++ b/usbcameralib/src/main/cpp/watermark.cpp
@@ -12,6 +12,7 @@
 #include "watermark.h"
 #include "charencode.h"
 #include "ImageProc.h"
+#include "apptimer.h"
 
 //static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
 typedef enum {
@@ -33,6 +34,22 @@
 static int pic_width = 0, pic_height = 0;
 static color_t wm_color;
 
+static void PrintTime(apptimer_var_t val)
+{
+    text_t text;
+
+    text.x = 10;
+    text.y = 10;
+
+    memset(text.text, 0, sizeof (text.text));
+
+    strcpy(text.text, FormatTime().c_str());
+
+    PrepareWatermark(RED, 24, 2, 1, &text);
+
+    AppTimer_add(PrintTime, D_SEC(1));
+}
+
 void InitWatermark(const char *font, int width, int height)
 {
     LOGI("InitWatermark");
@@ -48,6 +65,8 @@
 
     pic_width = width;
     pic_height = height;
+
+    AppTimer_add(PrintTime, D_SEC(1));
 }
 
 void UninitWatermark(void)
@@ -58,6 +77,7 @@
         wm = NULL;
     }
     wm_num = 0;
+    AppTimer_delete(PrintTime);
 }
 
 void PrepareWatermark(int color, int font_size, int multiple, int num, const text_t *texts)
@@ -75,7 +95,7 @@
     const int bytes_per_line = font_size / 8;
 
     wm_num = 0;
-    wm_color = color;
+    wm_color = static_cast<color_t>(color);
 
     //FILE *fp = fopen("/storage/self/primary/ms_unicode.bin", "rb");
     //FILE *fp = fopen("/system/ms_unicode.bin", "rb");
@@ -86,14 +106,14 @@
         uint8_t zm[64*64/8];        // 鏈�澶�
 
         for (int m = 0; m < num; ++m) {
-            char *str = texts[m].text;
+            const char *str = texts[m].text;
 
             int screen_x = texts[m].x;
             int screen_y = texts[m].y;
             offset = 0;
 
             while (str != NULL && offset < strlen(str)) {
-                int skip = enc_utf8_to_unicode_one(str + offset, &unicode);
+                int skip = enc_utf8_to_unicode_one(reinterpret_cast<const unsigned char *>(str + offset), &unicode);
                 int next_x = 0;
 
                 if (skip == 0) {

--
Gitblit v1.8.0