From 8dd0fd8a13d83b733839fa8b1386a46e4c9ba17f Mon Sep 17 00:00:00 2001 From: Omar Hassan Date: Wed, 5 Feb 2020 14:16:45 +0500 Subject: [PATCH] If applied, this commit will describe permission denied message in imwrite_ function when user does not have write permission --- modules/imgcodecs/src/loadsave.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/modules/imgcodecs/src/loadsave.cpp b/modules/imgcodecs/src/loadsave.cpp index 55008aaf57..ddd5fcf6fa 100644 --- a/modules/imgcodecs/src/loadsave.cpp +++ b/modules/imgcodecs/src/loadsave.cpp @@ -51,6 +51,8 @@ #undef max #include #include +#include +#include #include @@ -718,6 +720,23 @@ static bool imwrite_( const String& filename, const std::vector& img_vec, code = encoder->write( write_vec[0], params ); else code = encoder->writemulti( write_vec, params ); //to be implemented + + if (!code) + { + FILE* f = fopen( filename.c_str(), "wb" ); + if ( !f ) + { + if (errno == EACCES) + { + CV_LOG_WARNING(NULL, "imwrite_('" << filename << "'): can't open file for writing: permission denied"); + } + } + else + { + fclose(f); + remove(filename.c_str()); + } + } } catch (const cv::Exception& e) {