From: Kwanghoon Son Date: Wed, 10 Jul 2024 00:08:07 +0000 (+0900) Subject: Add draw_logo check, comment X-Git-Tag: accepted/tizen/unified/20240727.112753^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e16f14bbfa08e7bd6f4b5b1ff84de92279a6645d;p=platform%2Fcore%2Fapi%2Fmediavision.git Add draw_logo check, comment Change-Id: I1033ff296547ac6490ea4c4148d8de509ea79f70 Signed-off-by: Kwanghoon Son --- diff --git a/mv_barcode/barcode_generator/src/BarcodeGenerator.cpp b/mv_barcode/barcode_generator/src/BarcodeGenerator.cpp index 0c0ee888..6cb608fb 100644 --- a/mv_barcode/barcode_generator/src/BarcodeGenerator.cpp +++ b/mv_barcode/barcode_generator/src/BarcodeGenerator.cpp @@ -307,8 +307,16 @@ static void __round_rect(cv::Mat &inOutImg, cv::Rect &rect, cv::Scalar &color) cv::circle(inOutImg, cv::Point(rect.x + 3 * gapW, rect.y + 3 * gapH), gapW, color, -1); } -static int __draw_logo(cv::Mat &image, const BarcodeConfig &config) +/* + * Use only for mv_barcode_generate_image because, + * QR code size is maximum 177x177, then logo will be (35x35). + * mv_barcode_generate_image support user-defined resize, so user can set size detail. + */ +static void __draw_logo(cv::Mat &image, const BarcodeConfig &config) { + if (config.logo_path.empty() || config.type != MV_BARCODE_QR) + return; + auto logo = cv::imread(config.logo_path.c_str(), cv::IMREAD_COLOR); int color_decimal = strtol(config.bgcolor.c_str(), nullptr, 16); @@ -349,8 +357,6 @@ static int __draw_logo(cv::Mat &image, const BarcodeConfig &config) cv::multiply(cv::Scalar::all(1.0) - maskMat, image, image); cv::multiply(maskMat / 255, logoMat, logoMat); cv::add(logoMat, image, image); - - return MEDIA_VISION_ERROR_NONE; } int write_buffer_to_img(zint_symbol *symbol, const BarcodeConfig &config) @@ -400,14 +406,7 @@ int write_buffer_to_img(zint_symbol *symbol, const BarcodeConfig &config) cv::Mat image(symbol->bitmap_height, symbol->bitmap_width, CV_8UC3, symbol->bitmap); cv::resize(image, image, cv::Size(config.image_width, config.image_height), 0, 0, cv::INTER_AREA); - - if (!config.logo_path.empty()) { - error = __draw_logo(image, config); - if (error != MEDIA_VISION_ERROR_NONE) { - LOGE("__draw_logo error code : %d", error); - return error; - } - } + __draw_logo(image, config); error = cv::imwrite(resultFilePath, image, compressionParams) ? BARCODE_ERROR_NONE : BARCODE_ERROR_INVALID_DATA;