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.
Retouche d'images Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Retouche d'images Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

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

» Décompilation
Retouche d'images Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Retouche d'images Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Retouche d'images Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Retouche d'images Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Retouche d'images Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Retouche d'images Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Retouche d'images Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Retouche d'images Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Retouche d'images Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Retouche d'images Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Retouche d'images Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Retouche d'images 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
-55%
Le deal à ne pas rater :
Friteuse sans huile – PHILIPS – Airfryer HD9200/90 Série 3000
49.99 € 109.99 €
Voir le deal

 

 Retouche d'images

Aller en bas 
2 participants
AuteurMessage
JL35




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

Retouche d'images Empty
MessageSujet: Retouche d'images   Retouche d'images EmptySam 15 Jan 2011 - 15:55

Retouches élémentaires, sans prétention (en fait c'est IrfanView qui fait tout le boulot), redimensionnement et découpages. L'avantage c'est de voir simultanément l'image d'origine et l'image résultat, pour éventuellement reprendre la retouche en modifiant des paramètres.

Il faut éventuellement modifier quelques paramètres (en tête du programme) en fonction de ses ressources, et disposer de IrfanView.
Il y a une aide élémentaire intégrée.
Code:
' Retouches.bas retouches d'images
DIM w0, h0, wi, hi, iv$, xl, yl, wl, no, nl, nc, ng, nq, ns, nr, nd, nrg, nrd, i%
DIM no1, no2, f$, fr$, ftm$, fi$, n, a$, b$, ng1, ng2, ng3, ng4, pas, spa, pr, wim, him
DIM nf, nz, nv, nop, w, h, wn, hn, x, y, sf$, eg, rc$
LABEL Grille, Exec, Maj, Infos, Help
' ========================= A AJUSTER ====================================
f$ = "C:\Graph\Jpg\IMG_2022.jpg": ' une image quelconque
fr$ = "Z:\Resul.jpg": ' image résultant de la retouche
ftm$ = "Z:\Infos.txt": ' fichier de manoeuvre
iv$ = "C:\Progra~1\Irfanv~1\i_view32.exe ": ' chemin d'IrfanView
' ========================================================================
h0 = 1040: ' hauteur Form 0, à ajuster en fonction de la taille du moniteur
wi = 640: ' fenêtres (pictures 1 et 2) d'affichage des images (idem)
hi = wi*3/4
w0 = 850
xl = wi+10: yl = hi+10: wl = w0-wi-20
pas = 0: ' pas de la grille, en pixels
sf$ = ""
rc$ = CHR$(13) + CHR$(10)

WIDTH 0, w0: HEIGHT 0, h0: COLOR 0, 220,255,255
FONT_SIZE 0, 10: FONT_BOLD 0
PICTURE 1: TOP 1, 20: LEFT 1, 5: WIDTH 1, wi: HEIGHT 1, hi
PICTURE 2: TOP 2, hi+40: LEFT 2, 5: WIDTH 2, wi: HEIGHT 2, hi
no1 = 10
LIST no1: TOP no1, 50: LEFT no1, xl: WIDTH no1, 180: HEIGHT no1, 140
no2 = no1 + 1
LIST no2: TOP no2, 200: LEFT no2, xl: WIDTH no2, 180: HEIGHT no2, 140
no = 20
BUTTON no: TOP no, 370: LEFT no, xl: WIDTH no, 180: CAPTION no, "Affichage grille (On/Off)"
ON_CLICK no, Grille
no = no + 1
CONTAINER_OPTION no: TOP no, 400: LEFT no, xl: WIDTH no, 180: CAPTION no, "Quadrillage"
nop = no: no = no + 1
OPTION no: PARENT no, nop: TOP no, 20: LEFT no, 10: CAPTION no, "50 pixels": ng1 = no: no = no + 1
OPTION no: PARENT no, nop: TOP no, 40: LEFT no, 10: CAPTION no, "100 pixels": ng2 = no: no = no + 1
OPTION no: PARENT no, nop: TOP no, 60: LEFT no, 10: CAPTION no, "200 pixels": ng3 = no: no = no + 1
OPTION no: PARENT no, nop: TOP no, 80: LEFT no, 10: CAPTION no, "400 pixels": ng4 = no: no = no + 1

no = 30
ALPHA no: TOP no, 0: LEFT no, 10: CAPTION no, "Image:"
no = no + 1
EDIT no: TOP no, 0: LEFT no, 80: WIDTH no, 565: TEXT no, f$: nf = no
no = no + 1
yl = hi + 20
ALPHA no: TOP no, yl: LEFT no, 10: CAPTION no, "Résultat:"
no = no + 1
EDIT no: TOP no, yl: LEFT no, 80: WIDTH no, 565: TEXT no, fr$: nz = no
no = no + 1
BUTTON no: TOP no, 2: LEFT no, xl-5: WIDTH no, 75: HEIGHT no, 18
CAPTION no, CHR$(27) + " Valider": ON_CLICK no, Maj
no = no + 1
BUTTON no: TOP no, 2: LEFT no, xl+130: WIDTH no, 50: HEIGHT no, 18
CAPTION no, "?": ON_CLICK no, Help
no = no + 1

yl = hi + 40
ALPHA no: TOP no, yl: LEFT no, xl: WIDTH no, wl: HEIGHT no, 20: CAPTION no, "Luminosité"
no = no + 1
ALPHA no: TOP no, yl: LEFT no, xl+90: WIDTH no, wl: HEIGHT no, 20: CAPTION no, "Contraste"
no = no + 1: yl = yl + 20
SPIN no: TOP no, yl: LEFT no, xl: WIDTH no, wl/3: HEIGHT no, 20: nl = no
no = no + 1
SPIN no: TOP no, yl: LEFT no, xl+90: WIDTH no, wl/3: HEIGHT no, 20: nc = no
no = no + 1: yl = yl + 30
ALPHA no: TOP no, yl: LEFT no, xl: WIDTH no, wl: HEIGHT no, 20: CAPTION no, "Gamma"
no = no + 1
ALPHA no: TOP no, yl: LEFT no, xl+90: WIDTH no, wl: HEIGHT no, 20: CAPTION no, "Netteté"
no = no + 1: yl = yl + 20
SPIN no: TOP no, yl: LEFT no, xl: WIDTH no, wl/3: HEIGHT no, 20: ng = no
no = no + 1
SPIN no: TOP no, yl: LEFT no, xl+90: WIDTH no, wl/3: HEIGHT no, 20: ns = no
no = no + 1: yl = yl + 30
ALPHA no: TOP no, yl: LEFT no, xl: WIDTH no, wl: HEIGHT no, 20: CAPTION no, "Qualité (jpgq)"
no = no + 1: yl = yl + 20
SPIN no: TOP no, yl: LEFT no, xl: WIDTH no, wl/3: HEIGHT no, 20: nq = no
no = no + 1: yl = yl + 30

CHECK no: TOP no, yl: LEFT no, xl: HEIGHT no, 20: WIDTH no, 170
CAPTION no, "Redim (proportionnel)": nr = no
no = no + 1: yl = yl + 20
ALPHA no: TOP no, yl+2: LEFT no, xl: WIDTH no, 10: HEIGHT no, 20: CAPTION no, "w="
no = no + 1
SPIN no: TOP no, yl: LEFT no, xl+20: WIDTH no, wl/3: HEIGHT no, 20
no = no + 1
ALPHA no: TOP no, yl+2: LEFT no, xl+90: WIDTH no, 10: HEIGHT no, 20: CAPTION no, "h="
no = no + 1
SPIN no: TOP no, yl: LEFT no, xl+110: WIDTH no, wl/3: HEIGHT no, 20
no = no + 1: yl = yl + 30
CHECK no: TOP no, yl: LEFT no, xl: HEIGHT no, 20: WIDTH no, 170
CAPTION no, "Découpage": nd = no
no = no + 1: yl = yl + 20
ALPHA no: TOP no, yl+2: LEFT no, xl: WIDTH no, 10: HEIGHT no, 20: CAPTION no, "x="
no = no + 1
SPIN no: TOP no, yl: LEFT no, xl+20: WIDTH no, wl/3: HEIGHT no, 20
no = no + 1
ALPHA no: TOP no, yl+2: LEFT no, xl+90: WIDTH no, 10: HEIGHT no, 20: CAPTION no, "y="
no = no + 1
SPIN no: TOP no, yl: LEFT no, xl+110: WIDTH no, wl/3: HEIGHT no, 20
no = no + 1: yl = yl + 30
ALPHA no: TOP no, yl+2: LEFT no, xl: WIDTH no, 10: HEIGHT no, 20: CAPTION no, "w="
no = no + 1
SPIN no: TOP no, yl: LEFT no, xl+20: WIDTH no, wl/3: HEIGHT no, 20
no = no + 1
ALPHA no: TOP no, yl+2: LEFT no, xl+90: WIDTH no, 10: HEIGHT no, 20: CAPTION no, "h="
no = no + 1
SPIN no: TOP no, yl: LEFT no, xl+110: WIDTH no, wl/3: HEIGHT no, 20
no = no + 1: yl = yl + 30
ALPHA no: TOP no, yl: LEFT no, xl: WIDTH no, wl: HEIGHT no, 20: CAPTION no, "Rotation"
no = no + 1: yl = yl + 20
CHECK no: TOP no, yl: LEFT no, xl: CAPTION no, "Gauche" : nrg = no
no = no + 1
CHECK no: TOP no, yl: LEFT no, xl+90: WIDTH no, 90: CAPTION no, "Droite": nrd = no
no = no + 1: yl = yl + 40
CHECK no: TOP no, yl: LEFT no, xl: WIDTH no, 180: CAPTION no, "Niveaux de gris": nv = no
no = no + 1: yl = yl + 60
BUTTON no: TOP no, yl: LEFT no, xl+40: CAPTION no, "Ok"
ON_CLICK no, Exec

MIN nl, 0: MAX nl, 100: POSITION nl, 0: MIN nc, 0: MAX nc, 100: POSITION nc, 0
MIN ng, 0: MAX ng, 100: POSITION ng, 0: MIN ns, 0: MAX ns, 100: POSITION ns, 0
MIN nq, 0: MAX nq, 100: POSITION nq, 0

GOSUB Maj

END

Grille:
IF CHECKED(ng1) = 1 THEN pas = 50
IF CHECKED(ng2) = 1 THEN pas = 100
IF CHECKED(ng3) = 1 THEN pas = 200
IF CHECKED(ng4) = 1 THEN pas = 400
IF pas = spa
    FILE_LOAD 1, f$: STRETCH_ON 1: pas = 0: spa = 0: RETURN
END_IF
IF pas > 0
    FILE_LOAD 1, f$: STRETCH_ON 1
    eg = 4: IF wim < 1500 THEN eg = 2
    2D_TARGET_IS 1: 2D_PEN_WIDTH eg: 2D_PEN_COLOR 255,255,0: ' jaune
    FOR x = pas TO wim STEP pas
        2D_LINE x, 0, x, him
    NEXT x
    FOR y = pas TO him STEP pas
        2D_LINE 0, y, wim, y
    NEXT y
END_IF
spa = pas
RETURN

Exec:
f$ = TEXT$(nf)
IF f$ <> sf$
    n = no1: fi$ = f$: GOSUB Infos
    wim = w: him = h
    IF (w/h) <> (wi/hi)
        IF w > h
            hn = INT(h*wi/w): wn = wi
            IF hn > hi THEN hn = hi: wn = INT(hn*w/h)
            HEIGHT 1, hn: WIDTH 1, wn
        ELSE
            wn = INT(w*hi/h): hn = hi
            IF wn > wi THEN wn = wi: hn = INT(wn*h/w)
            WIDTH 1, INT(w*hi/h): HEIGHT 1, hn
        END_IF
    ELSE
      WIDTH 1, wi: HEIGHT 1, hi
    END_IF
    FILE_LOAD 1, f$: STRETCH_ON 1
    sf$ = f$
END_IF
a$ = ""
IF POSITION(nl) > 0
    a$ = a$ + " /bright="+STR$(POSITION(nl))
END_IF
IF POSITION(nc) > 0
    a$ = a$ + " /contrast="+STR$(POSITION(nc))
END_IF
IF POSITION(ng) > 0
    a$ = a$ + " /gamma="+STR$(POSITION(ng))
END_IF
IF POSITION(ns) > 0
    a$ = a$ + " /sharpen="+STR$(POSITION(ns))
END_IF
IF POSITION(nq) > 0
    a$ = a$ + " /jpgq="+STR$(POSITION(nq))
END_IF
IF CHECKED(nr) = 1
    wn = POSITION(nr+2): hn = POSITION(nr+4)
    IF wn = 0 THEN wn = INT(wim*hn/him)
    IF hn = 0 THEN hn = INT(him*wn/wim)
    a$ = a$ + " /resize=("+STR$(wn)+","+STR$(hn)+")"
END_IF
IF CHECKED(nd) = 1
    a$ = a$ + " /crop=("+STR$(POSITION(nd+2))+","+STR$(POSITION(nd+4))+","
    a$ = a$ +  STR$(POSITION(nd+6))+","+STR$(POSITION(nd+8))+")"
END_IF
IF CHECKED(nrg) = 1
    a$ = a$ + " /rotate_l"
END_IF
IF CHECKED(nrd) = 1
    a$ = a$ + " /rotate_r"
END_IF
IF CHECKED(nv) = 1
    a$ = a$ + " /gray"
END_IF
fr$ = TEXT$(nz)
EXECUTE_WAIT iv$ + f$ + a$ + " /convert=" + fr$
fi$ = fr$: n = no2: GOSUB Infos
IF (w/h) <> (wi/hi)
    IF w > h
        hn = INT(h*wi/w): wn = wi
        IF hn > hi THEN hn = hi: wn = INT(hn*w/h)
        HEIGHT 2, hn: WIDTH 2, wn
    ELSE
        wn = INT(w*hi/h): hn = hi
        IF wn > wi THEN wn = wi: hn = INT(wn*h/w)
        WIDTH 2, INT(w*hi/h): HEIGHT 2, hn
    END_IF
ELSE
    WIDTH 2, wi: HEIGHT 2, hi
END_IF
FILE_LOAD 2, fr$: STRETCH_ON 2
RETURN

Maj:
f$ = TEXT$(nf)
IF f$ <> sf$
    n = no1: fi$ = f$: GOSUB Infos
    wim = w: him = h
    IF (w/h) <> (wi/hi)
        IF w > h
            hn = INT(h*wi/w): wn = wi
            IF hn > hi THEN hn = hi: wn = INT(hn*w/h)
            HEIGHT 1, hn: WIDTH 1, wn
        ELSE
            wn = INT(w*hi/h): hn = hi
            IF wn > wi THEN wn = wi: hn = INT(wn*h/w)
            WIDTH 1, INT(w*hi/h): HEIGHT 1, hn
        END_IF
    ELSE
      WIDTH 1, wi: HEIGHT 1, hi
    END_IF
    FILE_LOAD 1, f$: STRETCH_ON 1
    sf$ = f$
END_IF
RETURN

Infos:
CLEAR n
ITEM_ADD n, fi$: ITEM_ADD n, "----------------------------------"
EXECUTE_WAIT iv$ + fi$ + " /info=" + ftm$
FILE_OPEN_READ 1, ftm$
    WHILE FILE_EOF(1) = 0
        FILE_READLN 1, a$
        IF LEFT$(a$, 16) = "Image dimensions"
            a$ = MID$(a$, 20, 100): i% = INSTR(a$, " x")
            b$ = LEFT$(a$, i%-1): w = VAL(b$)
            a$ = MID$(a$, i%+3, 100): i% = INSTR(a$, " ")
            h = VAL(LEFT$(a$, i%-1))
            b$ = b$ + " x " + STR$(h) + " pixels"
            ITEM_ADD n, b$
        END_IF
        IF LEFT$(a$, 9) = "Disk size"
            i% = INSTR(a$, "("): a$ = MID$(a$, i%+1, 100): i% = INSTR(a$, " ")
            a$ = LEFT$(a$, i%-1): b$ = a$ + " octets."
            ITEM_ADD n, b$
        END_IF
        IF LEFT$(a$, 14) = "File date/time"
            b$ = MID$(a$, 18, 11) + RIGHT$(a$, 8)
            ITEM_ADD n, b$
        END_IF
    END_WHILE
FILE_CLOSE 1
FILE_DELETE ftm$
RETURN

Help:
a$ = "                              - RETOUCHE D'IMAGES -" + rc$ + rc$
a$ = a$ + "CHARGER UNE NOUVELLE IMAGE:" + rc$
a$ = a$ + "- Modifier le champ 'Image', donner le chemin complet de l'image," + rc$
a$ = a$ + "  puis bouton 'Valider'."
a$ = a$ + rc$ + "  L'image s'affiche dans la fenêtre, ses paramètres s'affichent à droite."
a$ = a$ + rc$ + "- On peut modifier également le champ 'Résultat'."
a$ = a$ + rc$ + rc$ + "RETOUCHES:" + rc$
a$ = a$ + "- Choisir les paramètres de la retouche (partie inférieure droite de l'écran),"
a$ = a$ + rc$ +"  puis bouton 'Ok'. Le traitement s'effectue, l'image résultat s'affiche"
a$ = a$ + rc$ + "  dans la fenêtre inférieure gauche de l'écran." + rc$
a$ = a$ + "- Les paramètres Luminosité, Contraste, Gamma, Netteté, et Qualité"
a$ = a$ + rc$ + "  s'expriment sous forme d'une valeur comprise entre 0 et 100."
a$ = a$ + rc$ + "- On peut recommencer comme on veut en modifiant les paramètres."
a$ = a$ + rc$ + "- Tous les types de retouche peuvent se cumuler en une seule fois."
a$ = a$ + rc$ + rc$ + "REDIMENSIONNEMENT:" + rc$
a$ = a$ + "Garnir les paramètres: nouvelle largeur et hauteur en pixels, puis valider"
a$ = a$ + rc$ + "l'option 'Redim'."
a$ = a$ + rc$ + "Pour un redimensionnement proportionnel (sans déformation de l'image),"
a$ = a$ + rc$ + "laisser une des deux valeurs à zéro, elle s'ajustera automatiquement."
a$ = a$ + rc$ + rc$ + "DÉCOUPAGES:" + rc$
a$ = a$ + "Pour faciliter les découpages de parties d'images, on peut afficher une"
a$ = a$ + rc$ + "grille de dimensions choisies, en pixels, sur l'image d'origine:"
a$ = a$ + rc$ + "bouton 'Affichage grille' (un deuxième appui efface la grille)."
a$ = a$ + rc$ + "Garnir les paramètres de découpage: x, y, largeur et hauteur en pixels"
a$ = a$ + rc$ + "puis valider l'option 'Découpage'."
a$ = a$ + rc$ + rc$ + "ROTATION:" + rc$
a$ = a$ + "La rotation s'effectue par quarts de tour (90°), à gauche ou à droite."
a$ = a$ + rc$ + rc$ + "NIVEAUX DE GRIS:" + rc$
a$ = a$ + "L'image est convertie en noir et blanc (monochrome)."
MESSAGE a$
RETURN
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

Retouche d'images Empty
MessageSujet: Re: Retouche d'images   Retouche d'images EmptySam 15 Jan 2011 - 17:49

le fait de pouvoir visualiser l'image de départ avec la version finale me fait penser a un petit utilitaire que je trouve bien pratique :
Radical Image Optimization Tool
Cet utilitaire permet de réduire la taille des fichiers d'images sans trop de perte...
tout est paramètrable...
vraiment bien fait !!!

Surprised
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




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

Retouche d'images Empty
MessageSujet: Re: Retouche d'images   Retouche d'images EmptyDim 16 Jan 2011 - 1:03

Mais... tu fais de la pub pour la concurrence ! Suspect

Blague à part, l'avantage ici c'est qu'on peut adapter le programme à son goût, ou augmenter les possibilités, puisqu'on dispose du source.

Mais néanmoins je vais regarder ton truc.
Ca a l'air pas mal, mais j'aurais bien aimé que ça marche en ligne de commande...
Revenir en haut Aller en bas
Contenu sponsorisé





Retouche d'images Empty
MessageSujet: Re: Retouche d'images   Retouche d'images Empty

Revenir en haut Aller en bas
 
Retouche d'images
Revenir en haut 
Page 1 sur 1

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: