File: MarkerSegmentAPP0JFIF.java

package info (click to toggle)
pixelmed-codec 20141206-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 268 kB
  • ctags: 329
  • sloc: java: 1,270; makefile: 164
file content (44 lines) | stat: -rw-r--r-- 1,427 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* Copyright (c) 2014, David A. Clunie DBA Pixelmed Publishing. All rights reserved. */

package com.pixelmed.codec.jpeg;

/**
 * <p>A JPEG APP0 JFIF Marker Segment.</p>
 *
 * @author	dclunie
 */
public class MarkerSegmentAPP0JFIF {

	private static final String identString = "@(#) $Header: /userland/cvs/codec/com/pixelmed/codec/jpeg/MarkerSegmentAPP0JFIF.java,v 1.1 2014/03/21 15:28:07 dclunie Exp $";
	
	private int version;
	private int units;
	private int Xdensity;
	private int Ydensity;
	private int Xthumbnail;
	private int Ythumbnail;

	public MarkerSegmentAPP0JFIF(byte[] b,int length) {
		// identifier is 4 bytes plus a zero byte
		version=Utilities.extract16be(b,5);
		units=Utilities.extract8(b,7);
		Xdensity=Utilities.extract16be(b,8);
		Ydensity=Utilities.extract16be(b,10);
		Xthumbnail=Utilities.extract8(b,12);
		Ythumbnail=Utilities.extract8(b,13);
	}

	public String toString() {
		StringBuffer buf = new StringBuffer();
		buf.append("\n\tAPP0 JFIF:\n");
		buf.append("\t\t Version = "+Utilities.toPaddedHexString(version,2)+"\n");
		buf.append("\t\t Units for the X and Y densities = "+units+"\n");
		buf.append("\t\t Horizontal pixel density = "+Xdensity+"\n");
		buf.append("\t\t Vertical pixel density = "+Ydensity+"\n");
		buf.append("\t\t Thumbnail horizontal pixel count = "+Xthumbnail+"\n");
		buf.append("\t\t Thumbnail vertical pixel count = "+Ythumbnail+"\n");
		return buf.toString();
	}

}