{
BMPInfo
bmp_info;
- const char
- *value;
+ const char
+ *option;
const StringInfo
*profile;
if (LocaleCompare(image_info->magick,"BMP3") == 0)
type=3;
- value=GetImageOption(image_info,"bmp:format");
-
- if (value != (char *) NULL)
+ option=GetImageOption(image_info,"bmp:format");
+ if (option != (char *) NULL)
{
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
- " Format=%s",value);
+ " Format=%s",option);
- if (LocaleCompare(value,"bmp2") == 0)
+ if (LocaleCompare(option,"bmp2") == 0)
type=2;
- if (LocaleCompare(value,"bmp3") == 0)
+ if (LocaleCompare(option,"bmp3") == 0)
type=3;
- if (LocaleCompare(value,"bmp4") == 0)
+ if (LocaleCompare(option,"bmp4") == 0)
type=4;
}
((type > 3) && (image->alpha_trait != UndefinedPixelTrait) ? 32 : 24);
bmp_info.compression=(unsigned int) ((type > 3) &&
(image->alpha_trait != UndefinedPixelTrait) ? BI_BITFIELDS : BI_RGB);
+ if ((type == 3) && (image->alpha_trait != UndefinedPixelTrait))
+ {
+ option=GetImageOption(image_info,"bmp3:alpha");
+ if (IsStringTrue(option))
+ bmp_info.bits_per_pixel=32;
+ }
}
bytes_per_line=4*((image->columns*bmp_info.bits_per_pixel+31)/32);
bmp_info.ba_offset=0;