File tree Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -40,19 +40,29 @@ icons.forEach(icon => {
40
40
png . decode ( function ( pixels ) {
41
41
var rgba = new Uint8Array ( pixels ) ;
42
42
var isTransparent = false ;
43
- for ( var i = 0 ; i < rgba . length ; i += 4 )
43
+ for ( var i = 0 ; i < rgba . length ; i += 4 ) {
44
44
if ( rgba [ i + 3 ] < 255 ) isTransparent = true ;
45
+ }
45
46
if ( ! isTransparent ) { // make it transparent
46
47
for ( var i = 0 ; i < rgba . length ; i += 4 )
47
48
rgba [ i + 3 ] = 255 - rgba [ i ] ;
48
49
}
50
+ var allSet = true , allUnset = true ;
51
+ for ( var i = 0 ; i < rgba . length ; i += 4 ) {
52
+ rgba [ i + 0 ] = 0 ; // ensure all pixels are black (data is in transparency)
53
+ rgba [ i + 1 ] = 0 ;
54
+ rgba [ i + 2 ] = 0 ;
55
+ if ( rgba [ i + 3 ] > 0 ) allUnset = false ;
56
+ if ( rgba [ i + 3 ] < 255 ) allSet = false ;
57
+ }
49
58
50
59
imgOptions . width = png . width ;
51
60
imgOptions . height = png . height ;
52
61
var img = imageconverter . RGBAtoString ( rgba , imgOptions ) ;
53
62
iconImages [ index ] = img ;
54
63
console . log ( "Loaded " + icon . icon ) ;
55
- if ( img . length != IMAGE_BYTES ) throw new Error ( "Image size should be 76 bytes" ) ;
64
+ if ( allSet || allUnset ) throw new Error ( icon . icon + " Image is blank! (is it saved as 8 bit RGB PNG?)" ) ;
65
+ if ( img . length != IMAGE_BYTES ) throw new Error ( icon . icon + " Image size should be 76 bytes" ) ;
56
66
r ( ) ; // done
57
67
} ) ;
58
68
} ) ) ;
You can’t perform that action at this time.
0 commit comments