Example #1
0
  /**
   * The bitmasks field only occurs if the DIB Header is BITMAPINFOHEADER field and the compression
   * type is set to BI_BITFIELD
   *
   * @return a ComplexField containing the bitmask if it exists, null otherwise
   */
  private ComplexField<BitfieldMask> buildOptionalBitmasks() {

    if (DIBHeader.getValue().Size.getValueAsEnum() == DIBHeaderSize.BITMAPINFOHEADER) {
      BitmapInfoHeader bitmapInfoHeader = (BitmapInfoHeader) DIBHeader.getValue();
      if (bitmapInfoHeader.Compression.getValueAsEnum() == CompressionType.BI_BITFIELD) {
        return new ComplexField<BitfieldMask>("Bitfield Masks", BitfieldMask.class);
      }
    }
    return null; // no bitmap exists
  }
Example #2
0
 /**
  * The Color Palette field only exists if the DIB Header contains a ClrUsed field
  * (BITMAPINFOHEADER through BITMAPV5HEADER) and the ClrUsed field is non-0
  *
  * @return a ComplexArrayField containing the Color Palette array if it exists, null otherwise
  */
 private ComplexArrayField<RGBQuad> buildColorPaletteArray() {
   if (DIBHeader.getValue()
       instanceof BitmapInfoHeader) // if the header is at LEAST a BitmapInfoHeader
   {
     BitmapInfoHeader bitmapInfoHeader = (BitmapInfoHeader) DIBHeader.getValue();
     int NumberOfElements = bitmapInfoHeader.ClrUsed.getValueAsInt();
     return new ComplexArrayField<BmpHeaderMap.RGBQuad>(
         "Color Palette", RGBQuad.class, NumberOfElements);
   }
   return null; // no color palette exists
 }
Example #3
0
 /** {@inheritDoc} */
 public ComplexField getField() {
   return ComplexField.getInstance();
 }