Bug avec catchimage que je ne comprends pas

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
totorcalais
Messages : 67
Inscription : mer. 27/sept./2006 12:45

Bug avec catchimage que je ne comprends pas

Message par totorcalais »

Salut,

J'essaie de mettre en place des images dans un pdf avec purepdf

pure_image fonctionne bien.

Seulement, je n'ai pas envie de laisser trainer les images dans un répertoires et surtout, éviter les accès multiples car ces images de petites tailles doivent être reproduites à maintes reprises dans ce même document.

J'ai donc opté pour un catchimage couplé à un pdf_imagemem.

Je vous donne les bouts de codes liés :
Au début, j'initialise les valeurs à utiliser

Code : Tout sélectionner

Enumeration
  #Image_1
  #Image_2
  #Image_3
  #Image_4
  #Image_5
EndEnumeration

DataSection
  Image_1:
  IncludeBinary "a.jpg"
  Image_2:
  IncludeBinary "b.jpg"
  Image_3:
  IncludeBinary "c.jpg"
  Image_4:
  IncludeBinary "d.jpg"
  Image_5:
  IncludeBinary "e.jpg"
EndDataSection
Puis en début de programme je procède ainsi (une fois):

Code : Tout sélectionner

CatchImage(#Image_1,?Image_1)
MemSize1 = ImageDepth(#Image_1)*ImageHeight(#Image_1)*ImageWidth(#Image_1)

Debug "memsize1="+Str(MemSize1)
    CatchImage(#Image_2,?Image_2)
    MemSize2 = ImageDepth(#Image_2)*ImageHeight(#Image_2)*ImageWidth(#Image_2)
 Debug "memsize2="+Str(MemSize2)   
    CatchImage(#Image_3,?Image_3)
    MemSize3 = ImageDepth(#Image_3)*ImageHeight(#Image_3)*ImageWidth(#Image_3)
Debug "memsize3="+Str(MemSize3)
    CatchImage(#Image_4,?Image_4)
    memsize4 = ImageDepth(#Image_4)*ImageHeight(#Image_4)*ImageWidth(#Image_4)
Debug "memsize4="+Str(memsize4)
    CatchImage(#Image_5,?Image_5)
    MemSize5 = ImageDepth(#Image_5)*ImageHeight(#Image_5)*ImageWidth(#Image_5)
    Debug "memsize5="+Str(MemSize5)

Enfin, dans la partie de création du purepdf:

Code : Tout sélectionner

  pdf_ImageMem("1",?Image_1,MemSize1,x,y,5,5)
  pdf_ImageMem("2",?Image_2,MemSize2,x+5,y,5,5)
  pdf_ImageMem("3",?Image_3,MemSize3,x+10,y,5,5)
  pdf_ImageMem("4",?Image_4,MemSize4,x+15,y,5,5)
  pdf_ImageMem("5",?Image_5,MemSize5,x+20,y,5,5)

En débogueur, pas de problème, les images s'affichent dans ma page pdf générée.

MAIS En normal, il y a un plantage à partir de la 4ème image (j'ai essayé en enlevant la dernière, en remontant, et c'est comme cela que j'ai remarqué que cela passait avec les 3 premières et pas les deux suivantes).
J'ai essayé d'intervertir, cela ne provient pas de l'image?

J'ai éliminé la 2,3 et 5 (et donc laissé la 1 et 4) et pareil, plantage.

Cela le fait sous XP (en XP mode sous win7) mais aussi en win7 (version purebasic 4.51).

Quelqu'un a une idée car j'en perds mon latin?

PS: Dans les options compilateur, j'ai changé l'option : "executable thread safe" et cela passe à nouveau. Quelqu'un peut il m'expliquer pourquoi et surtout le fait de désactiver l'usage du thread (si il s'agit bien de cela) ne va t il pas risquer de poser des problèmes pour la diffusion de mon programme terminé?

PS2: Je travaille sous XP car j'ai un problème avec win7 (64). QUand j'utilise Japbe, dès que j'ouvre une fenêtre, elle ne veut plus se refermer et provoque l'obligation de CTRL-ALT SUP pour clore la tache (ou attendre la petit fenêtre idoine). Quelqu'un aurait il déjà eu ça et sait il comment s'en sortir (je précise que je suis en mode admin).
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Bug avec catchimage que je ne comprends pas

Message par dayvid »

J'peut pas t'aider sur ce coup là :(
Désoler :wink:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Bug avec catchimage que je ne comprends pas

Message par GallyHC »

Bonjour,

J'ai essayer de voir je penses que cela pourait venir de la methode, pouvez vous essayer avec ce type de code.

Code : Tout sélectionner

;
; *************************************
;

Global image1.l = CatchImage(#PB_Any, ?Image_1)
Global image2.l = CatchImage(#PB_Any, ?Image_2)
Global image3.l = CatchImage(#PB_Any, ?Image_3)
Global image4.l = CatchImage(#PB_Any, ?Image_4)
Global image5.l = CatchImage(#PB_Any, ?Image_5)

;
; *************************************
;

DataSection
  Image_1:
  IncludeBinary "a.jpg"
  Image_2:
  IncludeBinary "b.jpg"
  Image_3:
  IncludeBinary "c.jpg"
  Image_4:
  IncludeBinary "d.jpg"
  Image_5:
  IncludeBinary "e.jpg"
EndDataSection

;
; *************************************
;

pdf_ImageMem("1", ImageID(image1), MemSize1, x, y, 5, 5)
pdf_ImageMem("2", ImageID(image2), MemSize2, x + 5, y, 5, 5)
pdf_ImageMem("3", ImageID(image3), MemSize3, x + 10, y, 5, 5)
pdf_ImageMem("4", ImageID(image4), MemSize4, x + 15, y, 5, 5)
pdf_ImageMem("5", ImageID(image5), MemSize5, x + 20, y, 5, 5)
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Répondre