make imgcodecs optional for highgui

This commit is contained in:
Suleyman TURKMEN 2022-06-26 11:48:43 +03:00
parent 35f1a90df7
commit 0f067fd0a6
4 changed files with 12 additions and 5 deletions

View File

@ -1,9 +1,9 @@
set(the_description "High-level GUI")
if(ANDROID)
ocv_add_module(highgui opencv_imgproc opencv_imgcodecs OPTIONAL opencv_videoio WRAP python)
ocv_add_module(highgui opencv_imgproc OPTIONAL opencv_imgcodecs opencv_videoio WRAP python)
else()
ocv_add_module(highgui opencv_imgproc opencv_imgcodecs OPTIONAL opencv_videoio WRAP python java)
ocv_add_module(highgui opencv_imgproc OPTIONAL opencv_imgcodecs opencv_videoio WRAP python java)
endif()
include(${CMAKE_CURRENT_LIST_DIR}/cmake/plugin.cmake)

View File

@ -235,12 +235,15 @@ std::vector<FileSystemPath_t> getPluginCandidates(const std::string& baseName)
return results;
}
// NB: require loading of imgcodecs module
#ifdef HAVE_OPENCV_IMGCODECS // NB: require loading of imgcodecs module
static void* g_imwrite = (void*)imwrite;
#endif
void PluginUIBackendFactory::loadPlugin()
{
#ifdef HAVE_OPENCV_IMGCODECS
CV_Assert(g_imwrite);
#endif
for (const FileSystemPath_t& plugin : getPluginCandidates(baseName_))
{
auto lib = std::make_shared<cv::plugin::impl::DynamicLib>(plugin);

View File

@ -60,8 +60,6 @@
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/highgui/highgui_c.h"
#include "opencv2/imgcodecs.hpp"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

View File

@ -2132,6 +2132,7 @@ cvDestroyAllWindows(void)
static void showSaveDialog(CvWindow& window)
{
#ifdef HAVE_OPENCV_IMGCODECS
if (!window.image)
return;
@ -2193,6 +2194,11 @@ static void showSaveDialog(CvWindow& window)
cv::flip(cv::Mat(sz.cy, sz.cx, CV_8UC(channels), data, (sz.cx * channels + 3) & -4), tmp, 0);
cv::imwrite(szFileName, tmp);
}
#else
CV_UNUSED(window);
CV_LOG_WARNING("Save dialog requires enabled 'imgcodecs' module.");
return;
#endif
}
/*