Skip to content

Commit 3c1df67

Browse files
committed
std/bmp: let decoded pixfmt be transparent
Fixes #147
1 parent c4aa5e6 commit 3c1df67

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

release/c/wuffs-unsupported-snapshot.c

+2
Original file line numberDiff line numberDiff line change
@@ -31116,6 +31116,8 @@ wuffs_bmp__decoder__do_decode_image_config(
3111631116
(self->private_impl.f_channel_num_bits[2u] > 8u) ||
3111731117
(self->private_impl.f_channel_num_bits[3u] > 8u)) {
3111831118
v_dst_pixfmt = 2164308923u;
31119+
} else if (((self->private_impl.f_src_pixfmt == 2198077448u) || (self->private_impl.f_src_pixfmt == 2147485832u) || (self->private_impl.f_src_pixfmt == 2415954056u)) || ((self->private_impl.f_src_pixfmt == 2164308923u) && (self->private_impl.f_channel_masks[3u] == 0u))) {
31120+
v_dst_pixfmt = 2415954056u;
3111931121
}
3112031122
wuffs_base__image_config__set(
3112131123
a_dst,

std/bmp/decode_bmp.wuffs

+5
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,11 @@ pri func decoder.do_decode_image_config?(dst: nptr base.image_config, src: base.
383383
(this.channel_num_bits[2] > 8) or
384384
(this.channel_num_bits[3] > 8) {
385385
dst_pixfmt = base.PIXEL_FORMAT__BGRA_NONPREMUL_4X16LE
386+
} else if ((this.src_pixfmt == base.PIXEL_FORMAT__INDEXED__BGRA_BINARY) or
387+
(this.src_pixfmt == base.PIXEL_FORMAT__BGR) or
388+
(this.src_pixfmt == base.PIXEL_FORMAT__BGRX)) or
389+
((this.src_pixfmt == base.PIXEL_FORMAT__BGRA_NONPREMUL_4X16LE) and (this.channel_masks[3] == 0)) {
390+
dst_pixfmt = base.PIXEL_FORMAT__BGRX
386391
}
387392

388393
args.dst.set!(

0 commit comments

Comments
 (0)