以下是从JPEG图像中提取内容和元数据的程序.
import java.io.File;import java.io.FileInputStream;import java.io.IOException;import org.apache.tika.exception.TikaException;import org.apache.tika.metadata.Metadata;import org.apache.tika.parser.ParseContext;import org.apache.tika.parser.jpeg.JpegParser;import org.apache.tika.sax.BodyContentHandler;import org.xml.sax.SAXException;public class JpegParse { public static void main(final String[] args) throws IOException,SAXException, TikaException { //detecting the file type BodyContentHandler handler = new BodyContentHandler(); Metadata metadata = new Metadata(); FileInputStream inputstream = new FileInputStream(new File("boy.jpg")); ParseContext pcontext = new ParseContext(); //Jpeg Parse JpegParser JpegParser = new JpegParser(); JpegParser.parse(inputstream, handler, metadata,pcontext); System.out.println("Contents of the document:" + handler.toString()); System.out.println("Metadata of the document:"); String[] metadataNames = metadata.names(); for(String name : metadataNames) { System.out.println(name + ": " + metadata.get(name)); } }}
将上述代码保存为 JpegParse.java ,使用以下命令从命令提示符编译它 :
javac JpegParse.javajava JpegParse
以下是Example.jpeg : 的快照;
JPEG文件具有以下属性 :
执行程序后,您将获得以下输出.
输出和减号;
Contents of the document:Meta data of the document:Resolution Units: inchCompression Type: BaselineData Precision: 8 bitsNumber of Components: 3tiff:ImageLength: 3000Component 2: Cb component: Quantization table 1, Sampling factors 1 horiz/1 vertComponent 1: Y component: Quantization table 0, Sampling factors 2 horiz/2 vertImage Height: 3000 pixelsX Resolution: 300 dotsOriginal Transmission Reference: 53616c7465645f5f2368da84ca932841b336ac1a49edb1a93fae938b8db2cb3ec9cc4dc28d7383f1Image Width: 4000 pixelsIPTC-NAA record: 92 bytes binary dataComponent 3: Cr component: Quantization table 1, Sampling factors 1 horiz/1 verttiff:BitsPerSample: 8Application Record Version: 4tiff:ImageWidth: 4000Y Resolution: 300 dots