FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» 2D_fill_color
Zoom sur une portion d'écran Emptypar leclode Aujourd'hui à 10:34

» Consommation gaz électricité
Zoom sur une portion d'écran Emptypar leclode Mer 17 Avr 2024 - 11:07

» trop de fichiers en cours
Zoom sur une portion d'écran Emptypar lepetitmarocain Mer 17 Avr 2024 - 10:19

» on_key_down (résolu)
Zoom sur une portion d'écran Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Zoom sur une portion d'écran Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

» Bataille-navale
Zoom sur une portion d'écran Emptypar jjn4 Mer 3 Avr 2024 - 14:08

» Minimiser une fenêtre Panoramic.
Zoom sur une portion d'écran Emptypar Pedro Mar 2 Avr 2024 - 13:50

» Récapitulatif ludothèque panoramic jjn4
Zoom sur une portion d'écran Emptypar jjn4 Lun 1 Avr 2024 - 18:04

» demande explication KGF pour imprimer en mm
Zoom sur une portion d'écran Emptypar JL35 Jeu 28 Mar 2024 - 17:28

» Petit passage furtif
Zoom sur une portion d'écran Emptypar Froggy One Mer 27 Mar 2024 - 14:26

» SPIN et aide langage (résolu)
Zoom sur une portion d'écran Emptypar leclode Sam 23 Mar 2024 - 15:20

» Aide-mémoire des mots-clés Panoramic
Zoom sur une portion d'écran Emptypar papydall Mer 20 Mar 2024 - 21:23

» Je ne comprend pas pourquoi la largeur de la scene 3d change
Zoom sur une portion d'écran Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
Zoom sur une portion d'écran Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
Zoom sur une portion d'écran Emptypar Klaus Dim 3 Mar 2024 - 9:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le deal à ne pas rater :
Réassort du coffret Pokémon 151 Électhor-ex : où l’acheter ?
Voir le deal

 

 Zoom sur une portion d'écran

Aller en bas 
AuteurMessage
JL35




Nombre de messages : 7093
Localisation : 77
Date d'inscription : 29/11/2007

Zoom sur une portion d'écran Empty
MessageSujet: Zoom sur une portion d'écran   Zoom sur une portion d'écran EmptyLun 20 Nov 2017 - 19:51

Rien de révolutionnaire, le but était de capturer et/ou zoomer sur une partie d'écran, avec possibilité de pivoter la capture par bonds de 90°.

Contrainte: il faut disposer de la ressource externe IrfanView, traitement d'images (freeware évidemment) aux multiples possibilités, dont le grand intérêt pour nous est de fonctionner également en ligne de commande, donc appelé de manière transparente depuis un programme en Panoramic. La fonction utilisée ici est la fonction capture d'écran.

Le programme est destiné à être compilé et mis en icône sur le bureau.
Au lancement, seule une croix s'affiche sur l'écran, qu'on déplace à la souris, clic sur le point en haut à gauche, puis déplacement et clic sur le point en bas à droite de la capture.
La fenêtre Panoramic n'apparaît qu'à ce moment, capture effectuée.
La capture est affichée dans un picture (agrandie x2, c'est un choix arbitraire).
On peut l'agrandir, la diminuer, la faire pivoter par bonds successifs de 90°, et l'enregistrer dans le presse-papier.

Pour la petite histoire, la rotation c'est pour quand je reçois des photos dans des emails, prises avec un smartphone, elles sont systématiquement pivotées de 90°, parfois même carrément à l'envers !
Pour le zoom, ça peut être utile sur certains sites web pour agrandir une zone ou un détail trop petit.
Code:
' Zoom d'une zone de l'écran.
' Sélection:
' - en déplaçant la souris, amener la croix au coin supérieur gauche désiré, cliquer,
'   puis au coin inférieur droit, cliquer: la zone capturée s'affiche en haut à gauche.
LABEL Termin,Afi,Zoom,Rot,Copyclip
DIM iv$,fr$,fm$,wbm,hbm,w0,h0,v%(10),zmx,i,wmin%,a$
iv$ = "C:\Progra~2\Irfanv~1\i_view64.exe ": ' Chemin de IrfanView
fr$ = "C:\Temp\Temp.bmp"
fm$ = "C:\Temp\Img.bmp"

BORDER_HIDE 0: HIDE 0: FONT_NAME 0,"Arial": FONT_BOLD 0: FONT_SIZE 0,12
  COLOR 0,180,180,180
ALPHA 10: LEFT 10,0: COLOR 10,255,255,0
BUTTON 11: HEIGHT 11,19: WIDTH 11,50: LEFT 11,140: CAPTION 11,"Zm +"
BUTTON 12: HEIGHT 12,19: WIDTH 12,50: LEFT 12,LEFT(11)+WIDTH(11): CAPTION 12,"Zm -"
  ON_CLICK 11,Zoom: ON_CLICK 12,Zoom
BUTTON 13: HEIGHT 13,19: WIDTH 13,30: LEFT 13,LEFT(12)+WIDTH(12): CAPTION 13,CHR$(81)
BUTTON 14: HEIGHT 14,19: WIDTH 14,WIDTH(13): LEFT 14,LEFT(13)+WIDTH(13): CAPTION 14,CHR$(80)
   FOR i = 13 TO 14: FONT_NAME i,"Wingdings 3": ON_CLICK i,Rot: NEXT i
BUTTON 15: HEIGHT 15,19: WIDTH 15,60: LEFT 15,LEFT(14)+WIDTH(14): CAPTION 15,"-> Clip"
  ON_CLICK 15,Copyclip
BUTTON 16: HEIGHT 16,19: WIDTH 16,60: LEFT 16,LEFT(15)+WIDTH(15): CAPTION 16,"Quitter"
  ON_CLICK 16,Termin
wmin% = LEFT(16)+WIDTH(16): ' largeur minimum de Form 0
PICTURE 1: TOP 1,20: STRETCH_ON 1
zmx = 2: ' zoom initial
EXECUTE_WAIT iv$+"/capture=4 /convert="+fr$: ' Capture par IrfanView
IF FILE_EXISTS(fr$)=0 THEN TERMINATE
FILEBIN_OPEN_READ 1, fr$
    FILEBIN_POSITION 1, 18: FILEBIN_BLOCK_READ 1,8,v%(0)
    wbm = v%(0)+256*v%(1)+65536*v%(2)+16777216*v%(3): ' largeur sélection en pixels
    hbm = v%(4)+256*v%(5)+65536*v%(6)+16777216*v%(7): ' hauteur sélection en pixels
FILEBIN_CLOSE 1
SHOW 0
GOSUB Afi
END
' ==============================================================================
Termin:
  FILE_DELETE fr$
TERMINATE
' ==============================================================================
Afi:
  w0 = wbm*zmx: h0 = hbm*zmx+20
  IF w0 < wmin% THEN w0 = wmin%
  WIDTH 0,w0: HEIGHT 0,h0: TOP 1,18: WIDTH 1,wbm*zmx: HEIGHT 1,hbm*zmx
  FILE_LOAD 1,fr$
  CAPTION 10, "  "+STR$(wbm)+" x "+STR$(hbm)+" ("+STR$(zmx)+"x)  "
RETURN
' ==============================================================================
Zoom:
  IF CLICKED(11)=1: ' zoom avant
      zmx = zmx+1
  ELSE: ' zoom arrière
    zmx = zmx-1: IF zmx < 1 THEN zmx = 1
  END_IF
  GOSUB Afi
RETURN
' ==============================================================================
Rot:
  IF CLICKED(13) = 1
      a$ = "L": ' rotation de 90° à gauche
  ELSE
      a$ = "R": ' rotation de 90° à droite
  END_IF
  ImgRot90(fr$,a$,fm$)
  FILE_DELETE fr$: FILE_COPY fm$,fr$: FILE_DELETE fm$
  FILEBIN_OPEN_READ 1,fr$
    FILEBIN_POSITION 1,18: FILEBIN_BLOCK_READ 1,8,v%(0)
    wbm = v%(0)+256*v%(1)+65536*v%(2)+16777216*v%(3): ' largeur sélection en pixels
    hbm = v%(4)+256*v%(5)+65536*v%(6)+16777216*v%(7): ' hauteur sélection en pixels
  FILEBIN_CLOSE 1
  GOSUB Afi
RETURN
' ==============================================================================
Copyclip:
  CLIPBOARD_COPY 1
RETURN
' ==============================================================================
SUB ImgRot90(f$,RL$,fr$)
  ' Rotation d'une image f$ de 90° à gauche (RL$="L") ou à droite (RL$="R")
  ' ou à 180° (RL$ = "RL")
  ' Résultat dans le fichier fr$ (-> NB: doit être de même type que f$)
  DIM_LOCAL scr$,arg$,r$,q$: q$ = CHR$(34)
  r$ = "270": IF UPPER$(RL$)="R" THEN r$ = "90"
  IF UPPER$(RL$)="RL" THEN r$ = "180"
  IF FILE_EXISTS(fr$) = 1 THEN FILE_DELETE fr$: ' sinon, erreur
  scr$ = "C:\Temp\Vbscript.vbs"
  FILE_OPEN_WRITE 9,scr$
  FILE_WRITELN 9,"Dim Img 'As ImageFile"
  FILE_WRITELN 9,"Dim IP 'As ImageProcess"
  FILE_WRITELN 9,"Set Img = CreateObject("+q$+"WIA.ImageFile"+q$+")"
  FILE_WRITELN 9,"Set IP = CreateObject("+q$+"WIA.ImageProcess"+q$+")"
  FILE_WRITELN 9,"Img.LoadFile "+q$+f$+q$
  FILE_WRITELN 9,"IP.Filters.Add IP.FilterInfos("+q$+"RotateFlip"+q$+").FilterID"
  FILE_WRITELN 9,"IP.Filters(1).Properties("+q$+"RotationAngle"+q$+") = "+r$
  FILE_WRITELN 9,"Set Img = IP.Apply(Img)"
  FILE_WRITELN 9,"Img.SaveFile "+q$+fr$+q$
  FILE_WRITELN 9,"WScript.Quit(0)"
  FILE_CLOSE 9
  EXECUTE_WAIT "Wscript.exe " + scr$: ' Exécution du script
  FILE_DELETE scr$
END_SUB
' ==============================================================================
Exemple de capture du bureau (zoom x2 fois):

Zoom sur une portion d'écran Img10
Revenir en haut Aller en bas
 
Zoom sur une portion d'écran
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Zoom d'une partie d'image
» Zoom sur  Mandelbrot
» Zoom simple
» ZOOM d'image
» Zoom d'une zone de l'écran

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: