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
» Logiciel de planétarium.
Troncature dans une image Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Troncature dans une image Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Troncature dans une image Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Troncature dans une image Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Troncature dans une image Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Troncature dans une image Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Troncature dans une image Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Troncature dans une image Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Troncature dans une image Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Troncature dans une image Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Troncature dans une image Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Troncature dans une image Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Troncature dans une image Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Troncature dans une image Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Troncature dans une image Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
SSD interne Crucial BX500 2,5″ SATA – 500 Go à 29,99€
29.99 €
Voir le deal

 

 Troncature dans une image

Aller en bas 
2 participants
AuteurMessage
JL35




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

Troncature dans une image Empty
MessageSujet: Troncature dans une image   Troncature dans une image EmptyMar 8 Aoû 2017 - 20:58

Quand dans une présentation (ici par exemple) on veut mettre une image tronquée pour n'afficher que la partie intéressante, pour ne pas encombrer.
La sub découpe horizontalement la partie centrale de l'image avec des dents de scie.
On donne les fichiers départ (image jpg, bmp) et résultat (bmp), et les hauteurs de la partie haute, de la partie centrale (en blanc) et de la partie basse. La somme des trois étant la hauteur de l'image résultat.
(la hauteur de la partie centrale est la distance entre les crêtes des dents de scie)
Ce n'est sans doute pas d'un intérêt puissant, mais ça peut peut-être servir.
Code:
DIM f$,fr$,h1%,h2%,h3%
f$ = "C:\GRAPH\JPG\goldgate.jpg": ' image de 640 x 480 pixels
fr$ = "Z:\Image.bmp": ' Image résultat, à ajuster
h1% = 50: h2% = 5: h3% = 150
Coupimage(f$,h1%,h2%,h3%,fr$)
END

SUB Coupimage(f$,h1%,h2%,h3%,fr$)
  ' Réduction d'une image dans le sens de la hauteur avec insertion d'une zone
  ' vide. Image f$ (Jpg ou Bmp), résultat fr$ (Bmp)
  ' Hauteurs h1% = partie haute, h2% partie centrale, h3% partie basse, en pixels
  DIM_LOCAL p%,im%,im1%,s2%,sp%,fm$,wi%,hi%,w%,x%,y%
  fm$ = fr$
  p% = 1000: ' arbitraire
  PICTURE p%: HIDE p%: FILE_LOAD p%,f$: FILE_SAVE p%,fm$: ' -> bmp
  FILEBIN_OPEN_READ 1,fm$
     FILEBIN_POSITION 1,18: wi% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
     FILEBIN_POSITION 1,22: hi% = FILEBIN_READ(1)+256*FILEBIN_READ(1)
  FILEBIN_CLOSE 1
  im% = p%+1: IMAGE im%
  im1% = p%+2: IMAGE im1%
  2D_TARGET_IS p%
  w% = wi%/30: ' <===== largeur des dents de scie, à moduler
  2D_IMAGE_COPY im%,0,0,wi%,h1%: ' Partie haute
  2D_IMAGE_COPY im1%,0,hi%-h3%,wi%,hi%: ' Partie basse
  CLS: HEIGHT p%,h1%+h2%+h3%
  2D_IMAGE_PASTE im%,0,0: 2D_IMAGE_PASTE im1%,0,h1%+h2%: ' image tronquée
  FILE_SAVE p%,fm$
  s2% = p%+3: SCENE2D s2%: HIDE s2%: WIDTH s2%,wi%: HEIGHT s2%,HEIGHT(p%)
  FILE_LOAD s2%,fm$
  sp% = p%+4: SPRITE sp%
  CLS: WIDTH p%,wi%: HEIGHT p%,h2%+w%: COLOR p%,0,0,0: 2D_PEN_COLOR 255,255,10
  FOR x% = 0 TO wi%-10 STEP w%
      2D_LINE x%,w%/2,x%+w%/2,0: 2D_POLY_TO x%+w%,w%/2
  NEXT x%
  FOR x% = 0 TO wi%-10 STEP w%
      2D_LINE x%,w%+h2%,x%+w%/2,w%/2+h2%: 2D_POLY_TO x%+w%,w%+h2%
  NEXT x%
  2D_FLOOD w%/2,w%/2,255,255,255
  2D_IMAGE_COPY im%,0,0,wi%,w%+h2%: SPRITE_IMAGE_LOAD sp%,im%: ' masque -> sprite
  SPRITE_POSITION sp%,0,h1%-w%/2
  SNAPSHOT s2%,fr$
  2D_TARGET_IS 0: DELETE p%: DELETE im%: DELETE im1%: DELETE s2%
END_SUB
Par exemple (résultat de l'appel donné en exemple):
Troncature dans une image Image10
-----------------------  image d'origine ---------------------------------------------------------------- image résultat -------------------------------

Je reconnais que l'exemple choisi n'est pas très convaincant, j'ai pris n'importe quoi.
A la place des dents de scie certains auraient peut-être mis une sinusoïde, ou autre courbe mathématique plus ou moins sophistiquée, mais je laisse ça à notre ami papydall Very Happy
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Troncature dans une image Empty
MessageSujet: Re: Troncature dans une image   Troncature dans une image EmptyMer 9 Aoû 2017 - 4:20

JL35 a écrit:
... ou autre courbe mathématique plus ou moins sophistiquée, mais je laisse ça à notre ami papydall


Juste pour le côté mathématique, voici trois SUBs
1- Fonction_Dent_De_Scie
2- Fonction_Carree
3- Fonction_Sinusoide_Redressee

Code:

rem ============================================================================
rem      Fonctions "dent de scie" , "carrée" , "Sinusoïde redressée"
rem                        Papydall pour JL35
rem ============================================================================
 Fonction_Dent_De_Scie(10,40,8,50)
 Fonction_Dent_De_Scie(5,10,18,150)
 Fonction_Dent_De_Scie(5,10,18,170)
 Fonction_Dent_De_Scie(15,100,6,300)
' ------------------------------------------------------------------------------
' Fonction_Carree(30,6,100)
' Fonction_Carree(10,18,200)
' Fonction_Carree(20,8,300)
' ------------------------------------------------------------------------------
' Fonction_Sinusoide_Redressee(40,100,4,200)
' Fonction_Sinusoide_Redressee(15,50,12,300)
' Fonction_Sinusoide_Redressee(5,20,35,400)
end
rem ============================================================================
' Paramètres :
' a : unité sur l'axe des X
' b : unité sur l'axe des Y
' n : nombre des dents
' y : ordonnée du tracé
SUB Fonction_Dent_De_Scie(a,b,n,y)
    dim_local y1,t,p
    p = pi/180
    2d_poly_from 0,y
    for t = 0 to 2*n*pi step p
        y1 = 2/pi*asin(cos(t)) : ' La formule de l'équation "dent de scie"
        2d_poly_to a*t,y + b*y1
    next t
END_SUB
rem ============================================================================
' Paramètres :
' a : coté du carré
' n : nombre des carrés
' y : ordonnée du tracé
SUB Fonction_Carree(a,n,y)
    dim_local y1,t,p
    p = pi/180
    2d_poly_from p,y
    for t = 0 to n*pi+p step p
        y1 = sgn(sin(t)) : ' La formule de l'équation "carré"
        2d_poly_to a*t,y + a*y1
    next t
END_SUB
rem ============================================================================
' Paramètres :
' a : unité sur l'axe des X
' b : unité sur l'axe des Y
' n : nombre d'alternances
' y : ordonnée du tracé
SUB Fonction_Sinusoide_Redressee(a,b,n,y)
    dim_local y1,t,p
    p = pi/180
    2d_poly_from p,y
    for t = 0 to n*pi+p step p
        y1 = abs(sin(t)) : ' La formule de l'équation "sinusoïde redressée"
        2d_poly_to a*t,y - b*y1
    next t
END_SUB
rem ============================================================================
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Troncature dans une image Empty
MessageSujet: Re: Troncature dans une image   Troncature dans une image EmptyMer 9 Aoû 2017 - 12:45

Comme tu le sais très bien papydall, ma remarque n'était pas complètement innocente, aussi je ne suis pas déçu par ta contribution qui ouvre des horizons, merci.

Concernant la zone de séparation, il est facile dans la sub de la colorier en autre chose que du blanc pour que ce soit plus parlant, il suffit de modifier la ligne 2D_FLOOD w%/2,w%/2,r,g,b au choix. N'importe quoi sauf noir pur,  qui est la couleur de transparence du sprite.
On peu aussi, en plus du fond coloré, le remplir avec des hachures, croisillons, etc, du genre:
Code:
  2D_FLOOD w%/2,w%/2,255,255,0: 2D_FILL_DIAGONAL_CROSS: 2D_FLOOD w%/2,w%/2,10,10,10
Revenir en haut Aller en bas
Contenu sponsorisé





Troncature dans une image Empty
MessageSujet: Re: Troncature dans une image   Troncature dans une image Empty

Revenir en haut Aller en bas
 
Troncature dans une image
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Récupérer l'image d'un IMAGE dans un picture
» Découpe dans une image
» Découpe dans une image
» Écrire un texte dans une image
» Découper un rectangle dans une image

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: