diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2005-07-16 08:38:52 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2005-07-16 08:38:52 +0000 |
| commit | 5aa5abdff5dd3d8756de6b662af11ab55427fe16 (patch) | |
| tree | b85aefb2b18fed7ad9191d5625608d5705f8ccb3 | |
| parent | 2d5130bef801bb6338ee816b5e795232786f0249 (diff) | |
Added support for 32bit per pixel subformat, uncompressed, in BMP. Last 8 bit are used as Alpha channel.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4427 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | CHANGES | 1 | ||||
| -rw-r--r-- | src/Fl_BMP_Image.cxx | 13 |
2 files changed, 14 insertions, 0 deletions
@@ -2,6 +2,7 @@ CHANGES IN FLTK 1.1.7 - Documentation fixes (STR #648, STR #692, STR #730, STR #744, STR #745) + - Added 32bit BMP Image file format support (STR #918) - Value Sliders would not receive focus when clicked on (STR #911) - Added redraw of some widgets to show focus change (STR #910) - Fl::set_font would not clear 'pretty' name (STR #902) diff --git a/src/Fl_BMP_Image.cxx b/src/Fl_BMP_Image.cxx index 175375237..c59504ba6 100644 --- a/src/Fl_BMP_Image.cxx +++ b/src/Fl_BMP_Image.cxx @@ -186,6 +186,10 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read if (depth == 16) use_5_6_5 = (read_dword(fp) == 0xf800); + // Set byte depth for RGBA images + if (depth == 32) + bDepth=4; + // Setup image and buffers... d(bDepth); if (offbits) fseek(fp, offbits, SEEK_SET); @@ -398,6 +402,15 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read getc(fp); } break; + + case 32 : // 32-bit RGBA + for (x = w(); x > 0; x --, ptr += bDepth) { + ptr[2] = (uchar)getc(fp); + ptr[1] = (uchar)getc(fp); + ptr[0] = (uchar)getc(fp); + ptr[3] = (uchar)getc(fp); + } + break; } } |
