Page 1 sur 1

Aide sur save clipboard en jpg

Publié : mar. 23/nov./2010 6:57
par Albo1
Bonjour à tous,
Petit mot de présentation pour ma première visite: ancien VB6iste, je suis passé à PB4.5 pour la puissance, la rapidité, la possibilité de création d'exécutables (vraiment) autonomes.
Mais, j'ai un peu de mal avec la syntaxe, car par rapport à VB, il faut être plus structuré et savoir bien ce qu'on tape, sans compter d'assimiler le "vocabulaire" un peu différent. Mais j'ai bon espoir...
Donc, j'ai besoin d'aide pour créer un petit prog qui capturerait le clipboard pour sauvegarder en jpg (numéroté) dès qu'une image y est copiée.
J'ai vu les commandes GetCliboardImage, UseJpegImageEncoder, SaveImage, mais je ne sais pas comment mettre tout ça dans un timer et quel Gadget (nouveau pour moi, avant je manipulais des objets) utiliser comme conteneur.
Merci d'avance. :)

Re: Aide sur save clipboard en jpg

Publié : mar. 23/nov./2010 9:38
par falsam
Récupére et sauvegarde ce code dans un dossier ou tu retrouveras aussi les images sauvegardées automatiquement.

Code : Tout sélectionner

UseJPEGImageEncoder()

Enumeration
  #MainForm ; Identifiant fenetre principale de l'application
  #Image ; Identifiant de l'image
EndEnumeration

Global Result.l, CountImage.l=0, NumThread.l

Procedure MainFormOpen()
  OpenWindow(#Mainform, 0, 0, 500, 400, "Image Capturée")
EndProcedure


Procedure ImageRead(*ThreadValue)
  ;Crée une nouvelle #Image à partir du contenu du presse-papier (si une image est disponible). 
  ;Si un probleme est survenu, ou qu'aucune image n'est disponible, alors 0 est renvoyé.
  Repeat
  If GetClipboardImage(#Image)<>0
   ;Incrementation du compteur d'image
   CountImage=CountImage+1
  
   ;Sauvegarde de l'image en qualité maximum
   SaveImage(#Image, "IMG"+Str(CountImage)+".JPG", #PB_ImagePlugin_JPEG, 10)
   
   ;Destruction de l'image en mémoire
    ClearClipboard()
  EndIf
  ForEver
EndProcedure


MainFormOpen()
NumThread=CreateThread(@ImageRead(), 23)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      KillThread(NumThread)
      End
      
  EndSelect
ForEver
les images JPG, BMP, TIF sauvegardées en mémoire sont sauvegardées sur ton disque au format JPG. Des problèmes peuvent survenir avec des images GIF utilisant de la transparence.

L'utilisation sans modération de l'aide contextuel (Touche F1 par défaut) quand le curseur est sur un mot-clef ou une fonction PureBasic, est fortement recommandée.

Bienvenue à toi sur ce forum :)

Re: Aide sur save clipboard en jpg

Publié : mar. 23/nov./2010 22:12
par Albo1
Falsam,
Impec, exactement ce que je voulais faire.
Reste à décortiquer le code pour bien comprendre...
Merci pour cette réponse rapide. 8)
A+
falsam a écrit :Récupére et sauvegarde ce code dans un dossier ou tu retrouveras aussi les images sauvegardées automatiquement.

Code : Tout sélectionner

UseJPEGImageEncoder()

Enumeration
  #MainForm ; Identifiant fenetre principale de l'application
  #Image ; Identifiant de l'image
EndEnumeration

Global Result.l, CountImage.l=0, NumThread.l

Procedure MainFormOpen()
  OpenWindow(#Mainform, 0, 0, 500, 400, "Image Capturée")
EndProcedure


Procedure ImageRead(*ThreadValue)
  ;Crée une nouvelle #Image à partir du contenu du presse-papier (si une image est disponible). 
  ;Si un probleme est survenu, ou qu'aucune image n'est disponible, alors 0 est renvoyé.
  Repeat
  If GetClipboardImage(#Image)<>0
   ;Incrementation du compteur d'image
   CountImage=CountImage+1
  
   ;Sauvegarde de l'image en qualité maximum
   SaveImage(#Image, "IMG"+Str(CountImage)+".JPG", #PB_ImagePlugin_JPEG, 10)
   
   ;Destruction de l'image en mémoire
    ClearClipboard()
  EndIf
  ForEver
EndProcedure


MainFormOpen()
NumThread=CreateThread(@ImageRead(), 23)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      KillThread(NumThread)
      End
      
  EndSelect
ForEver
les images JPG, BMP, TIF sauvegardées en mémoire sont sauvegardées sur ton disque au format JPG. Des problèmes peuvent survenir avec des images GIF utilisant de la transparence.

L'utilisation sans modération de l'aide contextuel (Touche F1 par défaut) quand le curseur est sur un mot-clef ou une fonction PureBasic, est fortement recommandée.

Bienvenue à toi sur ce forum :)