FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Une autre façon de terminer une application.
par Francis-mr Aujourd'hui à 12:07

» Compilateur FBPano
par jean_debord Aujourd'hui à 10:09

» Copier / coller du texte à partir de la fenêtre de commandes
par jean_debord Aujourd'hui à 9:46

» COMPILATEUR V 0.9 beta 8 du 18 aout 2017
par papydall Aujourd'hui à 5:01

» Mettre en windows en veille
par papydall Aujourd'hui à 4:15

» Stretch_on ne stretch plus...
par papydall Hier à 15:22

» Pb 18 (en analyse): RESTORE_LABEL avec DATA à la fin
par Jack Hier à 13:21

» Problème de traitement des opérateurs avec le compilateur.
par Pedro Alvarez Sam 19 Aoû 2017 - 20:01

» Pb 17 (résolu): ITEM_SELECT ne fonctionne pas
par Jack Jeu 17 Aoû 2017 - 19:26

» un nouveau editeur panobasic
par Jean Claude Jeu 17 Aoû 2017 - 10:18

» Le compilateur.
par Pedro Alvarez Jeu 17 Aoû 2017 - 8:36

» Pb 16 (résolu): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (résolu): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Bricoler des images

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
JL35



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

MessageSujet: Bricoler des images   Jeu 25 Aoû 2016 - 23:40

Pour meubler un peu le silence ambiant...
Deux petites subs qui permettent:

- d'assembler deux images côte à côte en une seule, avec un intervalle éventuel, réglable. Les images peuvent être de tailles différentes, l'ajustage se fera automatiquement sur la plus grande.
Le sens d'assemblage peut être horizontal ou vertical.

- de rogner une partie d'image d'un nombre de pixels donné (en vue d'assemblage ?). Le rognage se fait au choix en haut, en bas, à gauche ou à droite de l'image.

Les images d'origine peuvent être au format BMP ou JPG, l'image résultat sera obligatoirement au format BMP (Panoramic ne sait pas sauvegarder dans un autre format, le code est tout en panoramic).

Code:
DIM f1$,f2$,fr$,e%,n%
f1$ = "C:\TEMP\i1.jpg"
f2$ = "C:\GRAPH\JPG\Goldgate.jpg"
fr$ = "Z:\Result.bmp"
e% = 0
n% = 40
Rogner(f2$,"D",n%,fr$)
' Assemble(f2$,f1$,"V",e%,fr$)
Message "Terminé !"
Terminate
' ==============================================================================
SUB Assemble(f1$,f2$,sens$,e%,fr$)
  ' Assembler deux images f1$ et f2$
  ' horizontalement (sens$="H") ou verticalement (sens$="V")
  ' écart e% pixels
  ' Résultat dans fr$ (image bmp)
  DIM_LOCAL fm$,w1%,h1%,w2%,h2%,w%,h%,x%,y%
  fm$ = "C:\TEMP\Provy.bmp"
  FORM 900: HIDE 900
  PICTURE 901: PARENT 901,900: ' manoeuvre
  PICTURE 902: PARENT 902,900: ' image finale
  IMAGE 903
  FILE_LOAD 901,f1$: FILE_SAVE 901,fm$
  FILEBIN_OPEN_READ 1,fm$: ' dimensions image 1
     FILEBIN_POSITION 1,18: w1% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
     FILEBIN_POSITION 1,22: h1% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
  FILEBIN_CLOSE 1
  FILE_LOAD 901,f2$: FILE_SAVE 901,fm$
  FILEBIN_OPEN_READ 1,fm$: ' dimensions image 2
     FILEBIN_POSITION 1,18: w2% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
     FILEBIN_POSITION 1,22: h2% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
  FILEBIN_CLOSE 1
  FILE_DELETE fm$
  IF sens$ = "H"
      w% = w1%+w2%+e%: h% = MAX(h1%,h2%)
      x% = w1%+e%: y% = 0
  ELSE
      w% = MAX(w1%,w2%): h% = h1%+h2%+e%
      x% = 0: y% = h1%+e%
  END_IF
  WIDTH 902,w%: HEIGHT 902,h%
  FILE_LOAD 901,f1$: CLIPBOARD_COPY 901: CLIPBOARD_PASTE 903
  2D_TARGET_IS 902: 2D_IMAGE_PASTE 903,0,0
  FILE_LOAD 901,f2$: CLIPBOARD_COPY 901: CLIPBOARD_PASTE 903
  2D_TARGET_IS 902: 2D_IMAGE_PASTE 903,x%,y%
  FILE_SAVE 902,fr$
  2D_TARGET_IS 0: DELETE 900: DELETE 903
END_SUB
' ==============================================================================
SUB Rogner(f$,sens$,n%,fr$)
  ' Rogner n% pixels d'une image f$
  ' en haut (sens$="H"), en bas ("B"), à gauche ("G") ou à droite ("D")
  ' Résultat dans fr$ (BMP)
  DIM_LOCAL fm$,w%,h%,x%,y%,wp%,hp%
  fm$ = "C:\TEMP\Provy.bmp"
  FORM 900: HIDE 900
  PICTURE 901: PARENT 901,900
  IMAGE 902
  FILE_LOAD 901,f$: FILE_SAVE 901,fm$
  FILEBIN_OPEN_READ 1,fm$: ' dimensions de l'image
     FILEBIN_POSITION 1,18: w% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
     FILEBIN_POSITION 1,22: h% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
  FILEBIN_CLOSE 1
  2D_TARGET_IS 901
  IF sens$ = "H": ' rogner en haut
      2D_IMAGE_COPY 902,0,n%,w%,h%: wp% = w%: hp% = h%-n%
  ELSE
      IF sens$ = "B": ' rogner en bas
          2D_IMAGE_COPY 902,0,0,w%,h%-n%: wp% = w%: hp% = h%-n%
      ELSE
          IF sens$ = "G": ' rogner à gauche
              2D_IMAGE_COPY 902,n%,0,w%,h%: wp% = w%-n%: hp% = h%
          ELSE: ' "D" rogner à droite
              2D_IMAGE_COPY 902,0,0,w%-n%,h%: wp% = w%-n%: hp% = h%
          END_IF
      END_IF
  END_IF
  CLS: WIDTH 901,wp%: HEIGHT 901,hp%: 2D_IMAGE_PASTE 902,0,0
  FILE_SAVE 901,fr$
  2D_TARGET_IS 0: DELETE 900: DELETE 902
END_SUB
' ==============================================================================

Les exemples sont à adapter.
On peut évidemment assembler des images de proche en proche, pour faire par exemple un panoramic... euh, un panoramique, en rognant les parties qui se chevauchent.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
Bricoler des images
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Affichage images dans un mail
» Insérer des images dans vos sujets.
» Hébergement gratuit images photos fichiers
» Récupérer des images du presse-papier
» nombre d'images dans un gif

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