Aide sur save clipboard en jpg

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Albo1
Messages : 2
Inscription : mar. 23/nov./2010 6:29

Aide sur save clipboard en jpg

Message 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. :)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Aide sur save clipboard en jpg

Message 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 :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Albo1
Messages : 2
Inscription : mar. 23/nov./2010 6:29

Re: Aide sur save clipboard en jpg

Message 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 :)
Répondre