diff --git a/src/dio/aseprite_decoder.cpp b/src/dio/aseprite_decoder.cpp index 7e3fcdea8..a959db1dc 100644 --- a/src/dio/aseprite_decoder.cpp +++ b/src/dio/aseprite_decoder.cpp @@ -484,13 +484,6 @@ doc::Layer* AsepriteDecoder::readLayerChunk(AsepriteHeader* header, case ASE_FILE_LAYER_IMAGE: layer = new doc::LayerImage(sprite); - - // Only transparent layers can have blend mode and opacity - if (!(flags & int(doc::LayerFlags::Background))) { - static_cast(layer)->setBlendMode((doc::BlendMode)blendmode); - if (header->flags & ASE_FILE_FLAG_LAYER_WITH_OPACITY) - static_cast(layer)->setOpacity(opacity); - } break; case ASE_FILE_LAYER_GROUP: @@ -509,6 +502,12 @@ doc::Layer* AsepriteDecoder::readLayerChunk(AsepriteHeader* header, } if (layer) { + if (layer->isImage() && !(flags & int(doc::LayerFlags::Background))) { + // Only transparent layers can have blend mode and opacity + static_cast(layer)->setBlendMode((doc::BlendMode)blendmode); + if (header->flags & ASE_FILE_FLAG_LAYER_WITH_OPACITY) + static_cast(layer)->setOpacity(opacity); + } // flags layer->setFlags(static_cast( flags &