From c776f3ea67a742c11533f00c1e147453039b6e44 Mon Sep 17 00:00:00 2001 From: Per Hedbor <ph@opera.com> Date: Tue, 2 Nov 1999 10:46:43 +0100 Subject: [PATCH] Now it actually works for non-layer images as well Rev: lib/modules/_Image_PSD.pmod:1.7 --- lib/modules/_Image_PSD.pmod | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/lib/modules/_Image_PSD.pmod b/lib/modules/_Image_PSD.pmod index e55e902b9e..df5486f502 100644 --- a/lib/modules/_Image_PSD.pmod +++ b/lib/modules/_Image_PSD.pmod @@ -216,9 +216,6 @@ mapping __decode( mapping|string what, mapping|void options ) array(object) decode_background( mapping data ) { object img; - if( data->depth == 1 && - data->mode != Greyscale ) - return ({ 0, 0 }); if( data->image_data ) img = ___decode_image_data(data->width, data->height, @@ -278,23 +275,27 @@ array decode_layers( string|mapping what, mapping|void opts ) mapping lopts = ([ "tiled":1, ]); - if( opts->background ) - { - lopts->image = Image.Image( 32, 32, opts->background ); - lopts->alpha = Image.Image( 32, 32, Image.Color.white ); - lopts->alpha_value = 1.0; - } - - [object img,object alpha] = decode_background( what ); - if( img ) + if( opts->background ) { - lopts->image = img; - if( alpha ) - lopts->alpha = alpha; - else - lopts->alpha = 0; + lopts->image = Image.Image( 32, 32, opts->background ); + lopts->alpha = Image.Image( 32, 32, Image.Color.white ); lopts->alpha_value = 1.0; } + + object img, alpha; + if( !what->layers || !sizeof(what->layers)) + { + [ img, alpha ] = decode_background( what ); + if( img ) + { + lopts->image = img; + if( alpha ) + lopts->alpha = alpha; + else + lopts->alpha = 0; + lopts->alpha_value = 1.0; + } + } array layers; if( lopts->image ) layers = ({ Image.Layer( lopts ) }); -- GitLab