diff --git a/hgdriver/3rdparty/opencv/include/opencv2/imgcodecs/imgcodecs_c.h b/hgdriver/3rdparty/opencv/include/opencv2/imgcodecs/imgcodecs_c.h index c36dac3..e821999 100644 --- a/hgdriver/3rdparty/opencv/include/opencv2/imgcodecs/imgcodecs_c.h +++ b/hgdriver/3rdparty/opencv/include/opencv2/imgcodecs/imgcodecs_c.h @@ -85,6 +85,13 @@ enum CV_IMWRITE_JPEG_RST_INTERVAL =4, CV_IMWRITE_JPEG_LUMA_QUALITY =5, CV_IMWRITE_JPEG_CHROMA_QUALITY =6, + + // add for DPI on 2022-10-14 + CV_IMWRITE_JPEG_RESOLUTION_UNIT = 7, // 0 - unknown(default value), 1 - dots/inch, 2 - dots/cm + CV_IMWRITE_JPEG_RESOLUTION_X = 8, // default value - 1 + CV_IMWRITE_JPEG_RESOLUTION_Y = 9, // default value - 1 + // ENDED for DPI + CV_IMWRITE_PNG_COMPRESSION =16, CV_IMWRITE_PNG_STRATEGY =17, CV_IMWRITE_PNG_BILEVEL =18, diff --git a/hgdriver/3rdparty/opencv/include/win/opencv2/imgcodecs/imgcodecs_c.h b/hgdriver/3rdparty/opencv/include/win/opencv2/imgcodecs/imgcodecs_c.h index c36dac3..e821999 100644 --- a/hgdriver/3rdparty/opencv/include/win/opencv2/imgcodecs/imgcodecs_c.h +++ b/hgdriver/3rdparty/opencv/include/win/opencv2/imgcodecs/imgcodecs_c.h @@ -85,6 +85,13 @@ enum CV_IMWRITE_JPEG_RST_INTERVAL =4, CV_IMWRITE_JPEG_LUMA_QUALITY =5, CV_IMWRITE_JPEG_CHROMA_QUALITY =6, + + // add for DPI on 2022-10-14 + CV_IMWRITE_JPEG_RESOLUTION_UNIT = 7, // 0 - unknown(default value), 1 - dots/inch, 2 - dots/cm + CV_IMWRITE_JPEG_RESOLUTION_X = 8, // default value - 1 + CV_IMWRITE_JPEG_RESOLUTION_Y = 9, // default value - 1 + // ENDED for DPI + CV_IMWRITE_PNG_COMPRESSION =16, CV_IMWRITE_PNG_STRATEGY =17, CV_IMWRITE_PNG_BILEVEL =18, diff --git a/hgdriver/hgdev/image_process.cpp b/hgdriver/hgdev/image_process.cpp index 773af57..69febc6 100644 --- a/hgdriver/hgdev/image_process.cpp +++ b/hgdriver/hgdev/image_process.cpp @@ -1399,8 +1399,16 @@ namespace hg_imgproc // MSB word[7] and word[8] are x and y resolutions std::vector cpr; unsigned short jpeg_r = (resolution << 8) | ((resolution >> 8) & 0x0ff); + int resolution_y = bih.biYPelsPerMeter / 39.37f + .5f; + cpr.push_back(CV_IMWRITE_JPEG_QUALITY); cpr.push_back((int)(long)conv->dst.fmt.detail); + cpr.push_back(CV_IMWRITE_JPEG_RESOLUTION_UNIT); + cpr.push_back(1); + cpr.push_back(CV_IMWRITE_JPEG_RESOLUTION_X); + cpr.push_back(resolution); + cpr.push_back(CV_IMWRITE_JPEG_RESOLUTION_Y); + cpr.push_back(resolution_y); if (conv->dst.is_file) { cv::imwrite(conv->dst.data, imsg, cpr); diff --git a/hgsane/CMakeLists.txt b/hgsane/CMakeLists.txt index 16cbd85..de2991f 100644 --- a/hgsane/CMakeLists.txt +++ b/hgsane/CMakeLists.txt @@ -15,10 +15,10 @@ file(GLOB DIR_HEADS "${PROJECT_SOURCE_DIR}/*.h" "${PROJECT_SOURCE_DIR}/*.hpp") set(DIR_SRCS ${DIR_SRCS} ${DIR_HEADS}) add_library(${PROJECT_NAME} SHARED ${DIR_SRCS}) link_directories(${PROJECT_NAME} PRIVATE - ${PROJECT_SOURCE_DIR}/../../release/kylin/${CMAKE_SYSTEM_PROCESSOR} + ${PROJECT_SOURCE_DIR}/../../release/uos/${CMAKE_SYSTEM_PROCESSOR} ) target_link_libraries(${PROJECT_NAME} PRIVATE hgdriver - ${PROJECT_SOURCE_DIR}/../../release/kylin/${CMAKE_SYSTEM_PROCESSOR}/libhgdriver.so + ${PROJECT_SOURCE_DIR}/../../release/uos/${CMAKE_SYSTEM_PROCESSOR}/libhgdriver.so ) @@ -28,7 +28,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/../../sdk/include ) -set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../release/kylin/${CMAKE_SYSTEM_PROCESSOR}) +set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../release/uos/${CMAKE_SYSTEM_PROCESSOR})