IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[JNA] Ghostscript : crash et imcompréhension


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut [JNA] Ghostscript : crash et imcompréhension
    Bonjour,
    je cherche à utiliser Ghostscript pour éclater un pdf en images jpeg. J'ai un code C++ qui fonctionne bien, que je souhaite transcrire en Java via JNA. Voici le code de ma lib :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    public interface GhostscriptLibrary extends Library {
     
    	public GhostscriptLibrary INSTANCE = (GhostscriptLibrary) Native.loadLibrary("gsdll32",
    			GhostscriptLibrary.class);
     
    	// int gsapi_new_instance (void **pinstance, void *caller_handle);
    	public int gsapi_new_instance(PointerByReference instance,
    			Pointer caller_handler);
     
    	// void gsapi_delete_instance (void *instance);
    	public void gsapi_delete_instance(Pointer instance);
     
    	// int gsapi_init_with_args (void *instance, int argc, char **argv);
    	public int gsapi_init_with_args(Pointer instance, int argc, String[] argv);
     
    	// int gsapi_exit (void *instance);
    	public int gsapi_exit(Pointer instance);
    }
    et celui de la classe l'appelant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public class PdfExtractor {
     
    	public void extractPdf(String pdfPath) {
    		GhostscriptLibrary gs = GhostscriptLibrary.INSTANCE;
    		PointerByReference instancePointer = new PointerByReference();
    		gs.gsapi_new_instance(instancePointer, null);
     
    		String[] argv = { "pdf2ps", "-dNOPAUSE", "-dBATCH", "-dSAFER",
    				"-sDEVICE=jpeg", "-dJPEGQ=100", "-dCOLORSCREEN=true",
    				"-dNOINTERPOLATE", "-dGraphicsAlphaBits=2",
    				"C:\\tmp\\pdf\\test-gs-java-%d.jpg", "-r300x300", pdfPath };
    		gs.gsapi_init_with_args(instancePointer.getPointer(), argv.length, argv);
    		gs.gsapi_exit(instancePointer.getPointer());
    		gs.gsapi_delete_instance(instancePointer.getPointer());
    	}
    }
    Lors de l'exécution, j'ai systématiquement un crash lors de l'appel à gsapi_init_with_args, mais je ne comprends pas trop pourquoi (visiblement un problème de pointeur ne sachant pas pointer ). Si je supprime les appels à gsapi_init_with_args et gsapi_exit, tout se passe bien.
    Bref, si quelqu'un pouvait m'aider...

    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    Réponse : il suffit de remplacer les getPointer par des getValue.

  3. #3
    Invité de passage
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Par défaut
    Bonjour,

    Pour information, j'ai réalisé un projet ghost4j qui permet d'utiliser l'API C de Ghostscript (avec JNA également).

    La page du projet est la suivante: http://ghost4j.sourceforge.net

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation API C Ghostscript avec JNA
    Par snay13 dans le forum Débuter
    Réponses: 10
    Dernier message: 15/08/2010, 07h43
  2. Crash de mon dvd encrypté avec xine
    Par Slein dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 06/06/2004, 16h45
  3. [IB6] mon serveur crash apres des insert en série...
    Par Rmotte dans le forum Débuter
    Réponses: 11
    Dernier message: 27/05/2004, 14h53
  4. DLL Borland chargée par Windows: crash
    Par bocher dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/01/2004, 12h09
  5. Crash Base Access
    Par Ronald G. dans le forum Access
    Réponses: 4
    Dernier message: 04/08/2003, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo