Improve error reporting of JPEG image encoder

OpenCV issue #2604

After this patch applied an attempt to encode empty images produces exception
saying "Raw image encoder error: Empty JPEG image (DNL not supported)"
This commit is contained in:
Andrey Kamaev
2013-01-28 15:49:31 +04:00
parent 8521ac5d21
commit 255cd61a8c
5 changed files with 37 additions and 1 deletions

View File

@@ -537,8 +537,10 @@ ImageEncoder JpegEncoder::newEncoder() const
return new JpegEncoder;
}
bool JpegEncoder::write( const Mat& img, const vector<int>& params )
bool JpegEncoder::write( const Mat& img, const vector<int>& params )
{
m_last_error.clear();
struct fileWrapper
{
FILE* f;
@@ -633,6 +635,14 @@ bool JpegEncoder::write( const Mat& img, const vector<int>& params )
}
_exit_:
if(!result)
{
char jmsg_buf[JMSG_LENGTH_MAX];
jerr.pub.format_message((j_common_ptr)&cinfo, jmsg_buf);
m_last_error = jmsg_buf;
}
jpeg_destroy_compress( &cinfo );
return result;