Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
995 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  JAI : comment enregistrer un IFD privé dans un TIFF ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

JAI : comment enregistrer un IFD privé dans un TIFF ?

n°1788297
trees
Posté le 17-09-2008 à 16:43:18  profilanswer
 

Bonjour,
 
La question est dans le sujet.
Je parviens à écrire des IFD publics mais je coince pour écrire un IFD privé.
Existe-t-il un moyen simple ? Ou faut-il procéder "sauvagement" :
1° :
Créee un tag privé dans le premier IFD contenant l'offset de l'IFD privé (j'arrive à créer ce tag mais ne sais pas comment lui mettre la bonne valeur)
2° :
Comment rendre un IFD privé ? Je suppose qu'il faut doner la valeur zéro à NextIfdOffset dans le dernier IFD public mais comment faire ? Enfin, comment passer une image vide à cet IFD ?
Ci-dessous un exemple de code.
Merci...
 
 
import com.sun.media.jai.codec.*;
import java.awt.image.renderable.ParameterBlock;
import java.io.*;
import javax.media.jai.*;
import java.util.*;
 
public class CreateTiff {
 
/**
* Converts a image file to TIFF and adds a private IFD
* @param fileName file to be converted
* @param tiffFile TIFF file to create
*/
public void createTiffMf(File fileName, File tiffFile) {
 
String documentName="blabla";
short typeImage=1;
FileSeekableStream stream;
RenderedOp img;
TIFFEncodeParam encodeParam = new TIFFEncodeParam();
TIFFEncodeParam tmpEncodeParam = new TIFFEncodeParam();
ParameterBlock pb = new ParameterBlock();
Vector<TIFFField> tagsPriv = new Vector<TIFFField>();
Vector extraImgList = new Vector();
 
try {
 
// PUBLIC IFD
// loads image to convert to TIFF
stream = new FileSeekableStream(fileName);
img = JAI.create("stream", stream);
// adds a tag
TIFFField aTiffField = new TIFFField(269,2,1,(Object) new String[] {documentName});
TIFFField offsetOfPrivateIfd = new TIFFField(35000,4,1,(Object) (Object) new long[] {(long)????????????}); // WHAT HERE ?
TIFFField[] arrayTF = {aTiffField};
tmpEncodeParam.setExtraFields(arrayTF);
 
// BELOW IS WHAT I WOULD LIKE TO HAVE IN A PRIVATE IFD
// defines a tag in the private IFD
tagsPriv.add(new TIFFField(0xC352,TIFFField.TIFF_SHORT,1,(Object) new char[] {(char)typeImage}));
TIFFField[] tabTagsPriv = new TIFFField[tagsPriv.size()];
tagsPriv.copyInto(tabTagsPriv);
TIFFEncodeParam privateEncodeParam=new TIFFEncodeParam();
privateEncodeParam.setExtraFields(tabTagsPriv);
Object[] montab = new Object[2];
montab[0] = ?????; // WHAT TO PUT HERE AS AN IMAGE ?
montab[1] = privateEncodeParam;
extraImgList.add(montab);
// adds an IFD
encodeParam.setExtraImages(extraImgList.iterator());
 
// CREATION OF TIFF
pb.addSource(img);
pb.add(tiffFile.getAbsolutePath());
pb.add("TIFF" );
pb.add(encodeParam);
JAI.create("filestore",pb);
 
stream.close();
System.gc();
 
} catch(Exception e){
System.out.println(e);
}
}
}

mood
Publicité
Posté le 17-09-2008 à 16:43:18  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  JAI : comment enregistrer un IFD privé dans un TIFF ?

 

Sujets relatifs
Créer des tableaux, les enregistrer dans un fichier HTML et le chargéVBA - IE - enregistrer sous - pb de control
[ VB6 ] Enregistrer Données ( combobox.txt, textbox.txt ) sous EXCELSTRUTS un bouton enregistrer sous ??
comment enregistrer une image une fois redimensionnée[C++ / SQL] Enregistrer un objet en tant que blob
[Resolu] Enregistrer un fichier sous.....[problème]Enregistrer une phrase dans une structure
enregistrer / uploader une imageEnregistrer une image provenant d'un data:URI dans un fichier
Plus de sujets relatifs à : JAI : comment enregistrer un IFD privé dans un TIFF ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR