protected void ensureMetadataInitialized( BufferedImage image ) {
		if( !metadataInitialized ) {
			assert image != null;
			
			boolean isCompletelyTransparent = true;
			boolean isCompletelyOpaque = true;
			
			for( int y=0; y<image.getHeight(); ++y ) for( int x=0; x<image.getWidth(); ++x ) {
				switch( (image.getRGB(x, y) & 0xFF000000) ) {
				case 0xFF000000:
					isCompletelyTransparent = false;
					break;
				case 0x00000000:
					isCompletelyOpaque = false;
					break;
				default:
					isCompletelyTransparent = false;
					isCompletelyOpaque = false;
					break;
				}
				
				if( !isCompletelyTransparent && !isCompletelyOpaque ) break;
			}
			
			this.isCompletelyTransparent = isCompletelyTransparent;
			this.isCompletelyOpaque = isCompletelyOpaque;
			metadataInitialized = true;
		}
	}