code: public double[] getDerivedDimensions() {
  
  		Double width = getWidth();
  		Double height = getHeight();
  
  		if (width == null || height == null) {
  
  			int dataWidth;
  			int dataHeight;
  
  			try {
  				BufferedImage image = getDataImage();
  				dataWidth = image.getWidth();
  				dataHeight = image.getHeight();
  			} catch (IOException e) {
  				throw new GeoPackageException("Failed to read the data image",
  						e);
  			}
  
  			if (width == null) {
  				width = (double) dataWidth;
  
  				if (height != null) {
  					width *= (height / dataHeight);
  				}
  			}
  
  			if (height == null) {
  				height = (double) dataHeight;
  
  				if (width != null) {
  					height *= (width / dataWidth);
  				}
  			}
  
  		}
  
  		return new double[] { width, height };
  	}
docs: Get the derived width and height from the values and icon data, scaled as
  needed
  
  @return derived dimensions array with two values, width at index 0,
  height at index 1