Salut
j'utilise une librairie pour traiter une image que j'ai téléchargé du net (libpotrace.dll)en C, grâce à sa documentation j'ai pu avoir les paramètre de la fonction que je vais utilisé pour la vectorisation qui est
potrace_state_t *potrace_trace(const potrace_param_t *param, const potrace_bitmap_t *bm);
les paramètres sont :
dans mon application java j'ai mis ceci :
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 typedef unsigned long potrace_word; struct potrace_bitmap_s { int w, h; /* width and height, in pixels */ int dy; /* words per scanline (not bytes) */ potrace_word *map; /* raw data, dy*h words */ }; typedef struct potrace_bitmap_s potrace_bitmap_t; struct potrace_param_s { int turdsize; /* area of largest path to be ignored */ int turnpolicy; /* resolves ambiguous turns in path decomposition */ double alphamax; /* corner threshold */ int opticurve; /* use curve optimization? */ double opttolerance; /* curve optimization tolerance */ potrace_progress_t progress; /* progress callback function */ }; typedef struct potrace_param_s potrace_param_t;
lorsque je lance potrace_param_default()j'ai aucun problème, je peux récupérer et afficher les valeur par défaut.
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
20
21
22
23
24
25
26
27
28 public class Potrace_bitmap_t extends Structure{ public int w=36; public int h=2; /* width and height, in pixels */ public int dy=2; /* words per scanline (not bytes) */ public long [] map =new long[dy*h]; } public class potrace_param_t extends Structure{ //public static class ByValue extends Nat implements Structure.ByValue { } public int turdsize=0; public int turnpolicy=0; public double alphamax=0; public int opticurve=0; public double opttolerance=0; } button.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { potrace_param_t na=lib.potrace_param_default();//cette fonction remet les paramètre de potrace_param_t au valeur par défaut Potrace_bitmap_t bm=new Potrace_bitmap_t(); bm.map[0]=1113215L; bm.map[1]=4026531840L; bm.map[2]=3276415L; bm.map[3]=4026531840L; Potrace_state_t pt=lib.potrace_trace(na, bm); } });
mais a l'exécution de potrace_trace(na, bm), il m'affiche cette erreur :
An unexpected error has been detected by Java Runtime Environment:
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6504fbee, pid=2728, tid=2436
Java VM: Java HotSpot(TM) Client VM (1.6.0_03-b05 mixed mode, sharing) Problematic frame: C [libpotrace.dll+0xfbee]
An error report file with more information is saved as hs_err_pid2728.log
If you would like to submit a bug report, please visit: http://java.sun.com/webapps/bugreport/crash.jsp
je sais plus comment résoudre ce problème, j'ai chercher sur le forum et google mais aucun des réponse trouvé n'a pu m'aider.
merci pour vos réponse.






Répondre avec citation
Partager