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
» Panoramic et ses curiosités
par Klaus Aujourd'hui à 2:20

» Synedit Parameters
par Klaus Aujourd'hui à 1:33

» Utilitaire de suppression de fichiers
par Yannick Hier à 23:03

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Jeu 22 Juin 2017 - 21:16

» Compilateur FBPano
par jean_debord Jeu 22 Juin 2017 - 9:56

» Bienvenue à Virtualalan !
par UltraVox Jeu 22 Juin 2017 - 9:18

» Concours de Morpions
par jjn4 Jeu 22 Juin 2017 - 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Bricoler des images

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



Nombre de messages : 5882
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: