ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder


ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
Forum membership is Free!  Click Join to sign-up
Save Password
Forgot your Password?

 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 BMP 48rgb Support
 New Topic  Reply to Topic
Author Previous Topic Topic Next Topic  


2 Posts

Posted - Mar 05 2023 :  11:39:46  Show Profile  Reply
I am attempting to load a BMP and display to screen.

The BMP is 48rgb ( 16 bits per color, 48 bits total )

Images were originally scanned using an Epson v550

the TIEBitmap loads but the pfPixelFormat is set to ie24rgb

Of course, the image displayed is the 'mostly-red with some-green', as it is only using half of the image data

The work is being done in Delphi XE10.1
The test program is using the trial v10.3.5 trial from the download page

in the forum, there is a post concerning ICC that states:

"There are some areas of ImageEn where ie48RGB is not yet supported, but we are implementing support as demand calls for it."
"We have implemented it for profile conversion now. If there are other areas where you need ie48RGB support, let us know."

Is this BMP ie48rgb capability supported ?


form component
imgScannerImage: TImageEn;

io := TImageEnIO.Create(nil);
bmp := TIEBitmap.Create;
bmp.Read('c:\Temp\PhotoAlbumTest.bmp', io.Params);


BMP header Information

WORD bfType = 0x4d42 ("BM") // Signature
DWORD bfSize = 0x000fba12 (1030674) // File size
WORD bfReserved1 = 0x0000
WORD bfReserved2 = 0x0000
DWORD bfOffBits = 0x00000042 (66) // offset to bitmap data
DWORD biSize = 40 // size of this header
LONG biWidth = 612 // image width in pixels
LONG biHeight = 842 // image height in pixels
WORD biPlanes = 1 // number of planes
WORD biBitCount = 16 // bits per pixel
DWORD biCompression = 3 (BI_BITFIELDS) // compression method
DWORD biSizeImage = 1030608 // number of bytes in bitmap
LONG biXPelsPerMeter = 0 // horizontal resolution
LONG biYPelsPerMeter = 0 // vertical resolution
DWORD biClrUsed = 0 // colors used in the image
DWORD biClrImportant = 0 // important colors
Pixel Format 16-bit color depth


38165 Posts

Posted - Mar 06 2023 :  15:46:30  Show Profile  Reply

Please enable io.NativePixelFormat:

Also, post a link to the image so we can test it here.

Xequte Software
Go to Top of Page


2 Posts

Posted - Mar 08 2023 :  08:50:24  Show Profile  Reply

This is the test scan that I used for the information above.
I have attached the BMP and a TIFF of the same image.

it is a simple blank-and-white image I use to see what I could get from the scanner.

On the suggestion of using the IO.NativePixelFormat I had that set, but missed the LegacyBitmap item. Setting it to False did not change much, but it did show a somewhat diluted and dithered black-and-wihite image. Still not the conversion to a displayable image.

The effort is two-fold.

First, to first make sure the scanner can still do scanning in the 48bit format and save. Then the display of i can be reduced as necessary, as a representation of the exact image.

Second, there is to build a library of several thousands of images saved in this 48bit format that need to be loadable and displayable. There is a good set of these already saved this format, which is the crux of the issue, as most of those original images no longer exist to scan again.

Glenn H Gresham
Go to Top of Page


38165 Posts

Posted - Mar 08 2023 :  19:01:42  Show Profile  Reply
Hi Glenn

Is the above the original image, as it is only 16 bits per pixel (not per color).

I cannot get them to load correctly in ImageEn or any of my comparison viewers.

Xequte Software
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
Jump To: