Click here to Skip to main content
15,890,527 members
Home / Discussions / Java
   

Java

 
QuestionHow to implement Rest API? Pin
Member 1153828225-Mar-15 23:51
Member 1153828225-Mar-15 23:51 
AnswerRe: How to implement Rest API? Pin
jainendra pal30-Mar-15 8:43
jainendra pal30-Mar-15 8:43 
Questionhow to create a chart from a database in android eclipse .. please help me :D Pin
Pungkas Soebarkah24-Mar-15 23:12
Pungkas Soebarkah24-Mar-15 23:12 
AnswerRe: how to create a chart from a database in android eclipse .. please help me :D Pin
Richard MacCutchan25-Mar-15 2:02
mveRichard MacCutchan25-Mar-15 2:02 
GeneralRe: how to create a chart from a database in android eclipse .. please help me :D Pin
Pungkas Soebarkah25-Mar-15 16:50
Pungkas Soebarkah25-Mar-15 16:50 
AnswerRe: how to create a chart from a database in android eclipse .. please help me :D Pin
jschell25-Mar-15 11:38
jschell25-Mar-15 11:38 
SuggestionRe: how to create a chart from a database in android eclipse .. please help me :D Pin
Richard Deeming26-Mar-15 3:00
mveRichard Deeming26-Mar-15 3:00 
QuestionProblem writing metadata to TIF file on Linux only Pin
wf-doug-6823-Mar-15 9:13
wf-doug-6823-Mar-15 9:13 
I wrote some code to insert custom annotations into a TIFF file, but I am having two problems.

First, the annotation description does not appear to be written correctly to the TIFF file, though the value is fine. I used AsTiffTagViewer to inspect the file, so it is possible that program does read descriptions for custom metadata.

Secondly, and this is more important, the exact same code does not work on Linux (runs w/o error but the annotations are not written). It runs fine on Windows 7. Below is a list of the jar files I have tried adding to the class path:

imageio-ext-tiff-1.1.10.jar
jai_codec.jar
jai_core.jar
jai_imageio-1.1.jar
mlibwrapper_jai.jar

Any help w/ these two issues would be appreciated. The code is below (assume a multi-page TIFF with 3 embedded images).

Thanks in advance!
Doug

Java
package consoleapp;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.stream.FileImageOutputStream;
import javax.imageio.stream.ImageInputStream;

import com.sun.media.imageio.plugins.tiff.TIFFDirectory;
import com.sun.media.imageio.plugins.tiff.TIFFField;
import com.sun.media.imageio.plugins.tiff.TIFFTag;
import com.sun.media.imageio.plugins.tiff.TIFFTagSet;

public class TIFFAnnotator3 {

	public static void main(String[] args) throws Exception {
		
		FileInputStream fis = new FileInputStream("/tmp/input.TIF");
//	    FileInputStream fis = new FileInputStream("c:\\temp\\input.TIF");
	    ImageInputStream iis = ImageIO.createImageInputStream(fis);

		ImageReader imageReader = ImageIO.getImageReadersBySuffix("tiff").next();
	    imageReader.setInput(iis);

	    FileImageOutputStream fos = new FileImageOutputStream(new File("/tmp/output.TIF"));
//		FileImageOutputStream fos = new FileImageOutputStream(new File("c:\\temp\\output.TIF"));
		
	    ImageWriter imageWriter = (ImageWriter) ImageIO.getImageWritersBySuffix("tiff").next();
		imageWriter.setOutput(fos);
	    
	    int imageCount = imageReader.getNumImages(true);
	    for(int j = imageCount - 1; j >= 0; j--) {
	
	        BufferedImage image = imageReader.read(j);
			IIOMetadata imageMetaData = imageReader.getImageMetadata(j);
	
	        TIFFDirectory dir = TIFFDirectory.createFromMetadata(imageMetaData);
	        
	        List tags = new ArrayList();
	        TIFFTag tag1 = new TIFFTag("FirstName", 65001, TIFFTag.TIFF_ASCII);
	        tags.add(tag1);
	        TIFFTag tag2 = new TIFFTag("LastName", 65002, TIFFTag.TIFF_ASCII);
	        tags.add(tag2);
	        TIFFTagSet tagSet = new TIFFTagSet(tags);
	        dir.addTagSet(tagSet);
	        
	        String[] tag1values = new String[1];
	        String[] tag2values = new String[1];

	        switch(j) {
		        case 0:
	        		tag1values[0] = "Arthur";
	        		tag2values[0] = "Dent";
	        		break;
		        case 1:
	        		tag1values[0] = "Ford";
	        		tag2values[0] = "Prefect";
	        		break;
	        	default:
	        		tag1values[0] = "Zaphod";
	        		tag2values[0] = "Beeblebrox";
	        		break;
	        }
	        
	        TIFFField field1 = new TIFFField(tag1, TIFFTag.TIFF_ASCII, tag1values.length, tag1values);
	        dir.addTIFFField(field1);
	        
	        TIFFField field2 = new TIFFField(tag2, TIFFTag.TIFF_ASCII, tag2values.length, tag2values);
	        dir.addTIFFField(field2);
	        
	        ImageWriteParam iwparam = imageWriter.getDefaultWriteParam();
	
	    	IIOImage img = new IIOImage(image, null, imageMetaData);
	    	if(j == imageCount - 1) {
	    		imageWriter.write(img);
	    	} else {
	        	if(imageWriter.canInsertImage(0)) {
	        		imageWriter.writeInsert(0, img, iwparam);
	        	}
	        }
	    }
	
		iis.close();
	    fis.close();
	    
		fos.flush();
		fos.close();
	
		imageWriter.dispose();
	
	}
}

SuggestionRe: Problem writing metadata to TIF file on Linux only Pin
Richard MacCutchan23-Mar-15 22:29
mveRichard MacCutchan23-Mar-15 22:29 
GeneralRe: Problem writing metadata to TIF file on Linux only Pin
wf-doug-6824-Mar-15 1:38
wf-doug-6824-Mar-15 1:38 
GeneralRe: Problem writing metadata to TIF file on Linux only Pin
Richard MacCutchan24-Mar-15 1:49
mveRichard MacCutchan24-Mar-15 1:49 
GeneralRe: Problem writing metadata to TIF file on Linux only Pin
wf-doug-6824-Mar-15 9:48
wf-doug-6824-Mar-15 9:48 
QuestionJava - Multiple User Input Prompts - Help Needed Pin
Amer_Khalil22-Mar-15 11:18
Amer_Khalil22-Mar-15 11:18 
AnswerRe: Java - Multiple User Input Prompts - Help Needed Pin
Richard MacCutchan22-Mar-15 21:58
mveRichard MacCutchan22-Mar-15 21:58 
Questionjava Pin
Member 1153610218-Mar-15 21:35
Member 1153610218-Mar-15 21:35 
AnswerRe: java Pin
jschell20-Mar-15 13:09
jschell20-Mar-15 13:09 
GeneralRe: java Pin
Member 1153610220-Mar-15 22:08
Member 1153610220-Mar-15 22:08 
GeneralRe: java Pin
Richard MacCutchan22-Mar-15 3:59
mveRichard MacCutchan22-Mar-15 3:59 
Questionjava access specifier Pin
javaPest16-Mar-15 5:43
professionaljavaPest16-Mar-15 5:43 
AnswerRe: java access specifier Pin
Richard MacCutchan22-Mar-15 0:03
mveRichard MacCutchan22-Mar-15 0:03 
Questiondata type Pin
Member 1152879816-Mar-15 1:39
Member 1152879816-Mar-15 1:39 
AnswerRe: data type Pin
javaPest16-Mar-15 5:38
professionaljavaPest16-Mar-15 5:38 
GeneralRe: data type Pin
Richard MacCutchan22-Mar-15 0:02
mveRichard MacCutchan22-Mar-15 0:02 
AnswerRe: data type Pin
Richard MacCutchan22-Mar-15 0:02
mveRichard MacCutchan22-Mar-15 0:02 
Questionupdate Pin
Member 1152879816-Mar-15 1:37
Member 1152879816-Mar-15 1:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.