Beispiel #1
0
  public JFIFSegment(
      int majorVersion,
      int minorVersion,
      int densityUnit,
      int xDensity,
      int yDensity,
      JFIFThumbnail thumbnail) {
    super(MetadataType.JPG_JFIF, null);
    checkInput(majorVersion, minorVersion, densityUnit, xDensity, yDensity);
    this.majorVersion = majorVersion;
    this.minorVersion = minorVersion;
    this.densityUnit = densityUnit;
    this.xDensity = xDensity;
    this.yDensity = yDensity;

    if (thumbnail != null) {
      int thumbnailWidth = thumbnail.getWidth();
      int thumbnailHeight = thumbnail.getHeight();
      if (thumbnailWidth < 0 || thumbnailWidth > 0xff)
        throw new IllegalArgumentException(
            "Thumbnail width " + thumbnailWidth + " out of range (0-0xff]");
      if (thumbnailHeight < 0 || thumbnailHeight > 0xff)
        throw new IllegalArgumentException(
            "Thumbnail height " + thumbnailHeight + " out of range (0-0xff]");
      this.thumbnailWidth = thumbnailWidth;
      this.thumbnailHeight = thumbnailHeight;
      this.thumbnail = thumbnail;
      this.containsThumbnail = true;
    }

    isDataRead = true;
  }
Beispiel #2
0
 public void write(OutputStream os) throws IOException {
   ensureDataRead();
   IOUtils.write(os, majorVersion);
   IOUtils.write(os, minorVersion);
   IOUtils.write(os, densityUnit);
   IOUtils.writeShortMM(os, getXDensity());
   IOUtils.writeShortMM(os, getYDensity());
   IOUtils.write(os, thumbnailWidth);
   IOUtils.write(os, thumbnailHeight);
   if (containsThumbnail) thumbnail.write(os);
 }