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
» PANORAMIC V 1
Retouche d'images Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
Retouche d'images Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Retouche d'images Emptypar Marc Hier à 12:14

» @Jack
Retouche d'images Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Retouche d'images Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Retouche d'images Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Retouche d'images Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Retouche d'images Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Retouche d'images Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Retouche d'images Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Retouche d'images Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Retouche d'images Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Retouche d'images Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Retouche d'images Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Retouche d'images Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-20%
Le deal à ne pas rater :
-20% Récupérateur à eau mural 300 litres (Anthracite)
79 € 99 €
Voir le deal

 

 Retouche d'images

Aller en bas 
2 participants
AuteurMessage
JL35




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