diff --git a/modules/imgcodecs/src/grfmt_jpeg.cpp b/modules/imgcodecs/src/grfmt_jpeg.cpp index 8a2900a19..093b88c40 100644 --- a/modules/imgcodecs/src/grfmt_jpeg.cpp +++ b/modules/imgcodecs/src/grfmt_jpeg.cpp @@ -267,13 +267,16 @@ int JpegDecoder::getOrientation() { int orientation = JPEG_ORIENTATION_TL; - ExifReader reader( m_filename ); - if( reader.parse() ) + if (m_filename.size() > 0) { - ExifEntry_t entry = reader.getTag( ORIENTATION ); - if (entry.tag != INVALID_TAG) + ExifReader reader( m_filename ); + if( reader.parse() ) { - orientation = entry.field_u16; //orientation is unsigned short, so check field_u16 + ExifEntry_t entry = reader.getTag( ORIENTATION ); + if (entry.tag != INVALID_TAG) + { + orientation = entry.field_u16; //orientation is unsigned short, so check field_u16 + } } } diff --git a/modules/imgcodecs/src/jpeg_exif.cpp b/modules/imgcodecs/src/jpeg_exif.cpp index ebc4f0535..61b27bbf9 100644 --- a/modules/imgcodecs/src/jpeg_exif.cpp +++ b/modules/imgcodecs/src/jpeg_exif.cpp @@ -128,6 +128,11 @@ std::map ExifReader::getExif() size_t count; + if (m_filename.size() == 0) + { + return m_exif; + } + FILE* f = fopen( m_filename.c_str(), "rb" ); if( !f )