This commit is contained in:
Davis King 2017-01-25 06:56:59 -05:00
commit 8f4f93b09e
2 changed files with 18 additions and 2 deletions

View File

@ -60,6 +60,13 @@ namespace dlib
return (output_components_ == 3);
}
// ----------------------------------------------------------------------------------------
bool jpeg_loader::is_rgba() const
{
return (output_components_ == 4);
}
// ----------------------------------------------------------------------------------------
struct jpeg_loader_error_mgr
@ -123,7 +130,8 @@ namespace dlib
output_components_ = cinfo.output_components;
if (output_components_ != 1 &&
output_components_ != 3)
output_components_ != 3 &&
output_components_ != 4)
{
fclose( fp );
jpeg_destroy_decompress(&cinfo);

View File

@ -23,6 +23,7 @@ namespace dlib
bool is_gray() const;
bool is_rgb() const;
bool is_rgba() const;
template<typename T>
void get_image( T& t_) const
@ -37,7 +38,6 @@ namespace dlib
COMPILE_TIME_ASSERT(sizeof(T) == 0);
#endif
image_view<T> t(t_);
t.set_size( height_, width_ );
for ( unsigned n = 0; n < height_;n++ )
{
@ -49,6 +49,14 @@ namespace dlib
unsigned char p = v[m];
assign_pixel( t[n][m], p );
}
else if ( is_rgba() ) {
rgb_alpha_pixel p;
p.red = v[m*4];
p.green = v[m*4+1];
p.blue = v[m*4+2];
p.alpha = v[m*4+3];
assign_pixel( t[n][m], p );
}
else // if ( is_rgb() )
{
rgb_pixel p;