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; }
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); }