Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Fabrication d'images-titres (photos) | |
| | |
Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Fabrication d'images-titres (photos) Jeu 12 Avr 2012 - 22:43 | |
| Il s'agit de fabriquer des images-titres à intercaler dans une série de photos (diaporama) ou dans une vidéo. Ces images peuvent être constituées simplement d'un fond de couleur uni, ou bien d'une image existante. On y superpose un texte, et éventuellement un cadre succinct. On peut choisir les couleurs, les enrichissements et l'emplacement du texte (il peut y avoir deux textes de formats différents). Voir la rubrique 'Aide' pour plus de détails. Remarques: - Il faut disposer de IrfanView si on désire sauvegarder le résultat au format .JPG (le File_Save ne sait faire que le .BMP). ps: en fait IrfanView sert aussi à redimensionner (et découper éventuellement) une image de fond éventuelle au format de l'image finale pour éviter le stretch_on qui produit des résultats indésirables quand on dessine dessus dans le picture.- Le programme FileTouch.exe (freeware, très léger, 16k) ne sert que si on désire forcer la date et heure du fichier produit, ce qui était utile dans mon cas: en effet avec mon épouse, en déplacement, nous faisons chacun nos photos, et il me faut ensuite interclasser l'ensemble par ordre chronologique de prise de vue (j'ai donc fait un autre programme pour ça), et donc j'intercale également les images-titres dont je force la date/heure de création pour qu'elle corresponde à celle des photos, avant le tri final. - Code:
-
LABEL Quit, Chfon, Ctxt, Valfnt, Voir, Couleur, Valcou, Coul16, Coul216, Pipette LABEL Trtx, Aftx, Descad, Img, Chfic, Fonte, Cfnd, Ccad, Sauve, Exec, Copier, Coller LABEL Chcad, Grille, Aide DIM wp, hp, wt, ht, wf, hf, wb, wc, hc, wd, hd, n, np, wi, hi, m, m1, m2, ntx DIM tt, tf, tc, td, tp, tb, ts, lt1, lt2, lf, lb, lc, ld, lp, e, r, an, pi, x%, y% DIM fnt$(2), sz%(2), cr%(2), cg%(2), cb%(2), enr$(2), ft%(2), mm(2), iv$, mh$ DIM wco%, hco%, ech%, ecv%, wct%, hct%, wcd%, hcd%, i%, j%, ra%, ga%, ba%, a$, f$ DIM w, h, wt%, ht%, xt%, yt%, tyc, rc$, gril, et%, ch, sh, sc, cc, cf, ea%, eb%
iv$ = "C:\Progra~2\Irfanv~1\i_view32.exe " mh$ = "C:\Util\FileTouch.exe ": ' pour modifier date/heure du fichier résultat rc$ = CHR$(13) + CHR$(10)
e = 5 wp = 640: hp = wp*3/4: ' taille de l'image, en pixels (= 640 x 480) wf = 300: wc = wf: wd = wf: wb = 30: wt = (wp+wf)/2-wb-10 lt1 = 10: lt2 = lt1+wt+e: tt = 30: ht = 198: lb = lt2+wt+e+10: tb = tt-23 lf = lt1: lc = lt1: ld = lt1: tf = tt+ht+e: hf = 110 tp = tf+5: lp = lf+wf+e+5 tc = tf+hf+e: hc = 215: td = tc+hc+e: hd = 70 ts = td+hd+e pi = 4*ATN(1)
WIDTH 0,980: HEIGHT 0, 740: COLOR 0,200,255,200: BORDER_HIDE 0: FONT_BOLD 0 ALPHA 1: TOP 1, 10: LEFT 1, WIDTH(0)/2-180 CAPTION 1, "- FABRICATION D'IMAGES-TITRES EN 640x480 -"
n = 10: ' Texte 1 ============================================================== PICTURE n: TOP n,tt: LEFT n,lt1: WIDTH n,wt: HEIGHT n,ht: COLOR n,180,180,230 ALPHA n+1: TOP n+1,TOP(n)+2: LEFT n+1,LEFT(n)+WIDTH(n)/2-30:CAPTION n+1," TEXTE 1 " 2D_TARGET_IS n: 2D_FILL_COLOR 180,180,180: 2D_RECTANGLE 0,0,WIDTH(n),16 MEMO n+2: TOP n+2,TOP(n)+16: LEFT n+2,lEFT(n)+5: WIDTH n+2,WIDTH(n)-10: HEIGHT n+2,ht-70 m1 = n+2 BUTTON n+3: TOP n+3,TOP(n+2)+HEIGHT(n+2)+5: LEFT n+3,LEFT(n+2)+5: CAPTION n+3,"Fonte" ON_CLICK n+3,Fonte ALPHA n+4: TOP n+4,TOP(n+3)+5: LEFT n+4,LEFT(n+3)+90: CAPTION n+4,"X= Y=" SPIN n+5: TOP n+5,TOP(n+3)+2: LEFT n+5,LEFT(n+4)+20: WIDTH n+5,50 SPIN n+6: TOP n+6,TOP(n+3)+2: LEFT n+6,LEFT(n+5)+70: WIDTH n+6,50 MIN n+5,0: MAX n+5,wp: MIN n+6,0: MAX n+6,hp CHECK n+7: TOP n+7,TOP(n+4): LEFT n+7,LEFT(n+6)+70: CAPTION n+7,"Centré H" CHECK n+8: TOP n+8,TOP(n+7): LEFT n+8,LEFT(n+7)+80: WIDTH n+8,75: CAPTION n+8,"Centré V" PICTURE n+9: TOP n+9,TOP(n+3)+30: LEFT n+9,LEFT(n+3): WIDTH n+9,75: HEIGHT n+9,14 COLOR n+9,0,0,0 ALPHA n+10: TOP n+10,TOP(n+9)+1: LEFT n+10, LEFT(n+9)+90: WIDTH n+10,200 CAPTION n+10,"Arial, 24, N"
n = 30: ' Texte 2 ============================================================== PICTURE n: TOP n,tt: LEFT n,lt2: WIDTH n,wt: HEIGHT n,ht: COLOR n,180,180,230 ALPHA n+1: TOP n+1,TOP(n)+2: LEFT n+1,LEFT(n)+WIDTH(n)/2-30: CAPTION n+1," TEXTE 2 " 2D_TARGET_IS n: 2D_FILL_COLOR 180,180,180: 2D_RECTANGLE 0,0,WIDTH(n),16 MEMO n+2: TOP n+2,TOP(n)+16: LEFT n+2,lt2+5: WIDTH n+2,WIDTH(n)-10: HEIGHT n+2,ht-70 m2 = n+2 BUTTON n+3: TOP n+3,TOP(n+2)+HEIGHT(n+2)+5: LEFT n+3,LEFT(n+2)+5: CAPTION n+3,"Fonte" ON_CLICK n+3,Fonte ALPHA n+4: TOP n+4,TOP(n+3)+5: LEFT n+4,LEFT(n+3)+90: CAPTION n+4,"X= Y=" SPIN n+5: TOP n+5,TOP(n+3)+2: LEFT n+5,LEFT(n+4)+20: WIDTH n+5,50 SPIN n+6: TOP n+6,TOP(n+3)+2: LEFT n+6,LEFT(n+5)+70: WIDTH n+6,50 MIN n+5,0: MAX n+5,wp: MIN n+6,0: MAX n+6,hp CHECK n+7: TOP n+7,TOP(n+4): LEFT n+7,LEFT(n+6)+70: CAPTION n+7,"Centré H" CHECK n+8: TOP n+8,TOP(n+7): LEFT n+8,LEFT(n+7)+80: WIDTH n+8,75: CAPTION n+8,"Centré V" PICTURE n+9: TOP n+9,TOP(n+3)+30: LEFT n+9,LEFT(n+3): WIDTH n+9,75: HEIGHT n+9,14 COLOR n+9,0,0,0 ALPHA n+10: TOP n+10,TOP(n+9)+1: LEFT n+10, LEFT(n+9)+90: WIDTH n+10,200 CAPTION n+10,"Arial, 24, N" mm(1) = m1: mm(2) = m2
BUTTON 45: TOP 45,tt: LEFT 45,lb: CAPTION 45,"Bouton"
n = 50: ' Fond ================================================================= PICTURE n: TOP n,tf: LEFT n,lf: WIDTH n,wf: HEIGHT n,hf: COLOR n,180,180,230 ALPHA n+1: TOP n+1,TOP(n)+2: LEFT n+1,LEFT(n)+WIDTH(n)/2-20:CAPTION n+1," FOND " 2D_TARGET_IS n: 2D_FILL_COLOR 180,180,180: 2D_RECTANGLE 0,0,WIDTH(n),16 BUTTON n+2: TOP n+2,TOP(n)+25: LEFT n+2,lf+25: WIDTH n+2,110 CAPTION n+2,"Couleur du fond": ON_CLICK n+2,Cfnd PICTURE n+3: TOP n+3,TOP(n+2): LEFT n+3,LEFT(n+2)+115: WIDTH n+3,100: HEIGHT n+3,25 COLOR n+3,255,255,0: ON_CLICK n+3,Cfnd: cf = n+3 CHECK n+4: TOP n+4,TOP(n+2)+35: LEFT n+4,LEFT(n+2): WIDTH n+4,120 CAPTION n+4,"Image de fond:" EDIT n+5: TOP n+5,TOP(n+4)+20: LEFT n+5,lf+5: WIDTH n+5,wf-10: ON_CLICK n+5,Chfic OPEN_DIALOG n+6
n = 60: ' Cadre ================================================================ PICTURE n: TOP n,tc: LEFT n,lc: WIDTH n,wc: HEIGHT n,hc: COLOR n,180,180,230 ALPHA n+1: TOP n+1,TOP(n)+2: LEFT n+1,LEFT(n)+WIDTH(n)/2-50:CAPTION n+1," ENCADREMENT " 2D_TARGET_IS n: 2D_FILL_COLOR 180,180,180: 2D_RECTANGLE 0,0,WIDTH(n),16 ALPHA n+2: TOP n+2,TOP(n)+27: LEFT n+2,lc+15 CAPTION n+2,"Cadre n°: Épaisseur trait:" SPIN n+3: TOP n+3,TOP(n+2)-2: LEFT n+3,LEFT(n+2)+55: WIDTH n+3,40: sc = n+3 SPIN n+4: TOP n+4,TOP(n+3): LEFT n+4,LEFT(n+3)+140: WIDTH n+4,50 MIN sc,0: MAX sc,6: MIN sc+1,1: MAX sc+1,100: POSITION sc+1,1 BUTTON n+5: TOP n+5,TOP(n+3)+25: LEFT n+5,lc+25: WIDTH n+5,110: CAPTION n+5,"Couleur du cadre" ON_CLICK n+5,Ccad
PICTURE n+6: TOP n+6,TOP(n+5): LEFT n+6,LEFT(n+5)+115: WIDTH n+6,100: HEIGHT n+6,25 COLOR n+6,0,255,255: ON_CLICK n+6, Ccad: cc = n+6 wi = 65: hi = 60
PICTURE n+7: TOP n+7,TOP(n+6)+30: LEFT n+7,lc+5: ' rectangle simple WIDTH n+7,wi: HEIGHT n+7,hi: COLOR n+7,255,255,160 2D_TARGET_IS n+7: 2D_PEN_WIDTH 3: 2D_PEN_COLOR 0,255,255 2D_LINE 15,hi,15,15: 2D_POLY_TO wi,15 PRINT_TARGET_IS n+7: PRINT_LOCATE wi-20,40: PRINT "1"
PICTURE n+8: TOP n+8,TOP(n+7): LEFT n+8,LEFT(n+7)+wi+10: ' coins arrondis WIDTH n+8,wi: HEIGHT n+8,hi: COLOR n+8,255,255,160 2D_TARGET_IS n+8: 2D_PEN_WIDTH 3: 2D_PEN_COLOR 0,255,255: 2D_LINE wi,15,40,15: ' arrondi r = 25 FOR an = pi/2+.1 TO pi STEP .05 x% = 40+r*COS(an): y% = 40-r*SIN(an): 2D_POLY_TO x%, y% NEXT an 2D_POLY_TO 15,hi PRINT_TARGET_IS n+8: PRINT_LOCATE wi-20,40: PRINT "2"
PICTURE n+9: TOP n+9,TOP(n+7): LEFT n+9,LEFT(n+8)+wi+10: ' grecque WIDTH n+9,wi: HEIGHT n+9,hi: COLOR n+9,255,255,160 2D_TARGET_IS n+9: 2D_PEN_WIDTH 3: 2D_PEN_COLOR 0,255,255 2D_LINE 15,hi,15,40: 2D_POLY_TO 30,40: 2D_POLY_TO 30,15 2D_POLY_TO 15,15: 2D_POLY_TO 15,30: 2D_POLY_TO 40,30: 2D_POLY_TO 40,15 2D_POLY_TO wi,15: PRINT_TARGET_IS n+9: PRINT_LOCATE wi-20,40: PRINT "3"
PICTURE n+10: TOP n+10,TOP(n+7): LEFT n+10,LEFT(n+9)+wi+10: ' ellipse WIDTH n+10,wi: HEIGHT n+10,hi: COLOR n+10,255,255,160 2D_TARGET_IS n+10: 2D_PEN_WIDTH 3: 2D_PEN_COLOR 0,255,255 ea% = wi-10: eb% = hi-20: 2D_LINE wi,20,wi,20 FOR an = pi/2+.1 TO pi STEP .05 x% = wi+ea%*COS(an): y% = hi-eb%*SIN(an): 2D_POLY_TO x%,y% NEXT an 2D_FILL_COLOR 255,255,255: PRINT_TARGET_IS n+10: PRINT_LOCATE wi-20,40: PRINT "4"
PICTURE n+11: TOP n+11,TOP(n+7)+hi+10: LEFT n+11,LEFT(n+7): ' ellipse entourée WIDTH n+11,wi: HEIGHT n+11,hi: COLOR n+11,255,255,160 2D_TARGET_IS n+11: 2D_PEN_WIDTH 3: 2D_PEN_COLOR 0,255,255 ea% = wi-10: eb% = hi-20: 2D_LINE wi,20,wi,20 FOR an = pi/2+.1 TO pi STEP .05 x% = wi+ea%*COS(an): y% = hi-eb%*SIN(an): 2D_POLY_TO x%,y% NEXT an 2D_FLOOD 1,1,0,255,255 2D_FILL_COLOR 255,255,255: PRINT_TARGET_IS n+11: PRINT_LOCATE wi-20,40: PRINT "5"
PICTURE n+12: TOP n+12,TOP(n+7)+hi+10: LEFT n+12,LEFT(n+7)+wi+10: ' cadre rectangulaire WIDTH n+12,wi: HEIGHT n+12,hi: COLOR n+12,255,255,160 2D_TARGET_IS n+12: 2D_FILL_COLOR 0,255,255: 2D_PEN_COLOR 80,80,80 2D_LINE 15,hi,15,15: 2D_POLY_TO wi,15: 2D_FLOOD 1,1,0,255,255 2D_LINE 0,0,15,15 2D_FILL_COLOR 255,255,255: PRINT_TARGET_IS n+12: PRINT_LOCATE wi-20,40: PRINT "6"
FOR i% = n+7 TO n+12: ON_CLICK i%, Chcad: NEXT i%
n = 110: ' Date/heure =========================================================== PICTURE n: TOP n,td: LEFT n,ld: WIDTH n,wd: HEIGHT n,hd: COLOR n,180,180,230 ALPHA n+1: TOP n+1,TOP(n)+2: LEFT n+1,LEFT(n)+WIDTH(n)/2-70:CAPTION n+1," DATE/HEURE FICHIER " 2D_TARGET_IS n: 2D_FILL_COLOR 180,180,180: 2D_RECTANGLE 0,0,WIDTH(n),16 CHECK n+2: TOP n+2,td+20: LEFT n+2,ld+15: WIDTH n+2, 260: ch = n+2: ' objet check CAPTION n+2,"Forcer AAAA-MM-JJ HH:MM:SS du résultat" SPIN n+3: TOP n+3,td+38: LEFT n+3,ld+15: WIDTH n+3,55: sh = n+3: ' objet spin MIN n+3,1970: MAX n+3,2050: POSITION n+3,2012 SPIN n+4: TOP n+4,td+38: LEFT n+4,ld+70: WIDTH n+4,40 MIN n+4, 1: MAX n+4, 12: POSITION n+4, 1 SPIN n+5: TOP n+5,td+38: LEFT n+5,ld+110: WIDTH n+5,40 MIN n+5, 1: MAX n+5, 31: POSITION n+5, 1 SPIN n+6: TOP n+6,td+38: LEFT n+6,ld+165: WIDTH n+6,40 MIN n+6, 0: MAX n+6, 23: POSITION n+6,0 SPIN n+7: TOP n+7,td+38: LEFT n+7,ld+205: WIDTH n+7,40 MIN n+7, 0: MAX n+7, 59: POSITION n+7, 0 SPIN n+8: TOP n+8,td+38: LEFT n+8,ld+240: WIDTH n+8,40 MIN n+8, 0: MAX n+8, 0: POSITION n+8, 0
n = 80: ' Sauvegarde =========================================================== PICTURE n: TOP n,ts: LEFT n,lt1: WIDTH n,wd: HEIGHT n,80: COLOR n,180,180,230 ALPHA n+1: TOP n+1,TOP(n)+2: LEFT n+1,LEFT(n)+WIDTH(n)/2-50:CAPTION n+1," SAUVEGARDER " 2D_TARGET_IS n: 2D_FILL_COLOR 180,180,180: 2D_RECTANGLE 0,0,WIDTH(n),16 EDIT n+2: TOP n+2,TOP(n)+27: LEFT n+2,lt1+5: WIDTH n+2,wf-10 BUTTON n+3: TOP n+3,TOP(n+2)+25: LEFT n+3,100: CAPTION n+3,"Enregistrer" ON_CLICK n+3, Sauve SAVE_DIALOG n+4
n = 90: ' Boutons ============================================================== 2D_TARGET_IS 0: 2D_FILL_COLOR 255,180,180: 2D_RECTANGLE lb-5,tb-5,lb+79,tb+ht+20 BUTTON n: TOP n,tb: LEFT n,lb: CAPTION n,"Quitter" BUTTON n+1: TOP n+1,TOP(n)+25: LEFT n+1,lb: CAPTION n+1,"Aide" BUTTON n+2: TOP n+2,TOP(n+1)+40: LEFT n+2,lb: CAPTION n+2,"Copier" BUTTON n+3: TOP n+3,TOP(n+2)+25: LEFT n+3,lb: CAPTION n+3,"Coller" BUTTON n+4: TOP n+4,TOP(n+3)+40: LEFT n+4,lb: CAPTION n+4,"Grille" BUTTON n+5: TOP n+5,TOP(n+4)+60: LEFT n+5,lb: CAPTION n+5,CHR$(7)+" Exécuter "+CHR$(7) ON_CLICK n,Quit: ON_CLICK n+1,Aide: ON_CLICK n+2,Copier: ON_CLICK n+3,Coller ON_CLICK n+4,Grille: ON_CLICK n+5,Exec
' Picture Image ================================================================ 2D_TARGET_IS 0: 2D_FILL_COLOR 0,0,0: 2D_RECTANGLE lp-10,tp-10,lp+wp+10,tp+hp+10 2D_PEN_COLOR 255,255,255: 2D_PEN_WIDTH 10 FOR i% = tp+5 TO tp+hp STEP 20: 2D_LINE lp-7,i%,lp+wp+5,i%: NEXT i% FOR i% = lp+5 TO lp+wp STEP 20: 2D_LINE i%,tp-7,i%,tp+hp+5: NEXT i% np = 100: ' Image PICTURE np: TOP np,tp: LEFT np,lp: WIDTH np,wp: HEIGHT np,hp: COLOR np,255,255,0 ON_CLICK np, Pipette IMAGE np+1
' FORM CARACTÉRISTIQUES DU TEXTE =============================================== fnt$(1) = "Arial": fnt$(2) = "Arial": sz%(1) = 24: sz%(2) = 24 cr%(1) = 0: cg%(1) = 0: cb%(1) = 0: cr%(2) = 0: cg%(2) = 0: cb%(2) = 0 enr$(1) = "": enr$(2) = "": ft%(1) = 0: ft%(2) = 0
FORM 200: TOP 200, 200: LEFT 200, 100: WIDTH 200, 400: HEIGHT 200, 300: HIDE 200 FONT_BOLD 200: COLOR 200, 180,255,180 EDIT 201: PARENT 201, 200: WIDTH 201, 200: TEXT 201, "Arial) LIST 202: PARENT 202, 200: TOP 202, 25: HEIGHT 202, 110: WIDTH 202, 200 FONT_NAMES_LOAD 202: ON_CLICK 202, Chfon SPIN 203: PARENT 203, 200: TOP 203, 0: LEFT 203, 205: WIDTH 203, 50 MIN 203, 6: MAX 203, 124: POSITION 203, 24 CHECK 204: PARENT 204, 200: TOP 204, 25: LEFT 204, 210: CAPTION 204, "Gras" CHECK 205: PARENT 205, 200: TOP 205, 40: LEFT 205, 210: CAPTION 205, "Italique" CHECK 206: PARENT 206, 200: TOP 206, 55: LEFT 206, 210: CAPTION 206, "Souligné" BUTTON 207: PARENT 207,200: TOP 207,75: LEFT 207,220: WIDTH 207,120 HEIGHT 207,24: CAPTION 207, "Couleur du texte" ON_CLICK 207, Ctxt PICTURE 208: PARENT 208,200: TOP 208,100: LEFT 208,220: WIDTH 208,120 HEIGHT 208,16: COLOR 208, 0,0,0
PICTURE 211: PARENT 211, 200: TOP 211, 140: LEFT 211, 5: WIDTH 211,370 HEIGHT 211, 115: COLOR 211, 200,200,200 CHECK 212: PARENT 212, 200: TOP 212, 117: LEFT 212, 230: WIDTH 212, 130 CAPTION 212, "Fond transparent" BUTTON 213: PARENT 213, 200: TOP 213, 5: LEFT 213, 300: CAPTION 213, "OK" ON_CLICK 213, Valfnt BUTTON 214: PARENT 214, 200: TOP 214, 35: LEFT 214, 300: CAPTION 214, "Appliquer" ON_CLICK 214, Voir
' FORM CHOIX DES COULEURS ====================================================== ' Palette de couleurs html, de &000000 à &FFFFFF, pas de &33 ' &000000, &000033, &000066, &000099, &0000CC, &0000FF, &003300, &003333, etc. wco% = 48: hco% = 18: ech% = 0: ecv% = 0 wct% = 6*(wco%+ech%): hct% = 36*(hco%+ecv%) FORM 300: TOP 300, 5: LEFT 300, 250: BORDER_SMALL 300: HIDE 300 WIDTH 300, wct%+16: HEIGHT 300, hct%+76: FONT_BOLD 300 PICTURE 301: PARENT 301, 300: WIDTH 301, wct%: HEIGHT 301,hct% PICTURE 302: PARENT 302,300: TOP 302, hct%+2: LEFT 302, 100: HEIGHT 302, 20 WIDTH 302, 90: COLOR 302,0,0,0 BUTTON 303: PARENT 303, 300: TOP 303, hct%+2: LEFT 303, 190: WIDTH 303,95 CAPTION 303, "OK": ON_CLICK 303, Valcou ON_CLICK 301, Couleur ALPHA 304: PARENT 304,300: TOP 304,hct%+24: LEFT 304, 110: HEIGHT 304,16 BUTTON 305: PARENT 305,300: TOP 305,hct%+2: LEFT 305,2: WIDTH 305,95 CAPTION 305, "16 couleurs": ON_CLICK 305, Coul16 GOSUB Coul16
' DIVERS ======================================================================= PICTURE 250: TOP 250, -200: LEFT 250, -800: WIDTH 250, 640: HEIGHT 250, 150
f$ = "C:\Temp\2a2b3c4z.jpg": IF FILE_EXISTS(f$) = 1 THEN FILE_DELETE f$
END ' +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Quit: f$ = "C:\Temp\2a2b3c4z.jpg": IF FILE_EXISTS(f$) = 1 THEN FILE_DELETE f$ TERMINATE
Chfic: a$ = FILE_NAME$(56) IF LEN(a$) > 4 THEN TEXT 55, a$ RETURN
Exec: 2D_TARGET_IS np ' 1) Fond IF CHECKED(54) = 1 f$ = TEXT$(55) IF FILE_EXISTS(f$) = 0 MESSAGE "Fichier non trouvé !": RETURN END_IF IF LEN(f$) > 4 IF UPPER$(RIGHT$(f$,4)) = ".JPG" OR UPPER$(RIGHT$(f$,4)) = ".BMP" GOSUB Img: FILE_LOAD np, f$ IF INSTR(f$, "1a2b3c4z") > 0 THEN FILE_DELETE f$ END_IF END_IF ELSE COLOR np, COLOR_PIXEL_RED(cf,1,1),COLOR_PIXEL_GREEN(cf,1,1),COLOR_PIXEL_BLUE(cf,1,1) END_IF ' 2) Cadre éventuel IF POSITION(63) > 0 GOSUB Descad END_IF ' 3) Texte(s) IF COUNT(m1) > 0 OR COUNT(m2) > 0 IF COUNT(m1) > 0 ntx = 1: m = m1: GOSUB Trtx END_IF IF COUNT(m2) > 0 ntx = 2: m = m2: GOSUB Trtx END_IF END_IF gril = 0 RETURN
Img: EXECUTE_WAIT iv$ + f$ + " /info=C:\Temp\infos.tmp" FILE_OPEN_READ 1, "C:\Temp\infos.tmp" WHILE FILE_EOF(1) = 0 FILE_READLN 1, a$ IF LEFT$(a$, 16) = "Image dimensions" a$ = MID$(a$, 20, 100): i% = INSTR(a$, " ") w = VAL(LEFT$(a$, i%-1)): a$ = MID$(a$, i%+3, 100): i% = INSTR(a$, " ") h = VAL(LEFT$(a$, i%-1)): EXIT_WHILE END_IF END_WHILE FILE_CLOSE 1: FILE_DELETE "C:\Temp\infos.tmp" a$ = "" IF w/h <> wp/hp IF w/h > wp/hp a$ = " /crop=(0,0," + STR$(h*wp/hp) + "," + STR$(h)+")" ELSE a$ = " /crop=(0,0," + STR$(w) + "," + STR$(w*hp/wp) + ")" END_IF END_IF a$ = a$ + " /resize=(" + STR$(wp) + "," + STR$(hp) + ")" EXECUTE_WAIT iv$ + f$ + a$ + " /convert=C:\Temp\1a2b3c4z.jpg" f$ = "C:\Temp\1a2b3c4z.jpg" RETURN
Trtx: PRINT_TARGET_IS np FONT_NAME np, fnt$(ntx): FONT_SIZE np, sz%(ntx) FONT_COLOR np,cr%(ntx),cg%(ntx),cb%(ntx) FONT_BOLD_OFF np: FONT_ITALIC_OFF np: FONT_UNDERLINE_OFF np IF enr$(ntx) <> "" IF INSTR(enr$(ntx), "G") > 0 THEN FONT_BOLD np IF INSTR(enr$(ntx), "I") > 0 THEN FONT_ITALIC np IF INSTR(enr$(ntx), "S") > 0 THEN FONT_UNDERLINE np END_IF ht% = TEXT_HEIGHT(ITEM_READ$(m, 1), np): ' hauteur d'une ligne de texte 2D_TARGET_IS np 2D_FILL_COLOR COLOR_PIXEL_RED(cf,1,1),COLOR_PIXEL_GREEN(cf,1,1),COLOR_PIXEL_BLUE(cf,1,1) x% = POSITION(m+3): y% = POSITION(m+4) IF CHECKED(m+5) = 1 OR CHECKED(m+6) = 1 IF CHECKED(m+6) = 1: ' centrage vertical y% = (hp-ht%*COUNT(m))/2 END_IF IF CHECKED(m+5) = 1: ' centrage horizontal FOR i% = 1 TO COUNT(m) a$ = ITEM_READ$(m, i%) IF a$ <> "" wt% = TEXT_WIDTH(a$, np) x% = (wp-wt%)/2: GOSUB Aftx END_IF y% = y% + ht% NEXT i% ELSE FOR i% = 1 TO COUNT(m) a$ = ITEM_READ$(m, i%): IF a$ <> "" THEN GOSUB Aftx y% = y% + ht% NEXT i% END_IF ELSE ' pas de centrage, position imposée FOR i% = 1 TO COUNT(m) a$ = ITEM_READ$(m, i%): IF a$ <> "" THEN GOSUB Aftx y% = y% + ht% NEXT i% END_IF RETURN
Aftx: ' affichage d'une ligne de texte a$ en x, y donnés IF ft%(ntx) = 0 PRINT_LOCATE x%, y%: PRINT a$ ELSE ' fond transparent, dessin du texte point par point PRINT_TARGET_IS 250: 2D_TARGET_IS 250: 2D_FILL_COLOR 255,255,255: CLS FONT_NAME 250, fnt$(ntx): FONT_SIZE 250, sz%(ntx) FONT_COLOR 250,0,0,0 FONT_BOLD_OFF 250: FONT_ITALIC_OFF 250: FONT_UNDERLINE_OFF 250 IF enr$(ntx) <> "" IF INSTR(enr$(ntx), "G") > 0 THEN FONT_BOLD 250 IF INSTR(enr$(ntx), "I") > 0 THEN FONT_ITALIC 250 IF INSTR(enr$(ntx), "S") > 0 THEN FONT_UNDERLINE 250 END_IF PRINT_LOCATE 0,0: PRINT a$ 2D_TARGET_IS np: 2D_PEN_COLOR cr%(ntx),cg%(ntx),cb%(ntx) FOR yt% = 0 TO ht%-1 FOR xt% = 0 TO TEXT_WIDTH(a$, 250)-1 IF COLOR_PIXEL_RED(250,xt%,yt%)=0 THEN 2D_POINT x%+xt%,y%+yt% NEXT xt% DISPLAY NEXT yt% END_IF RETURN
Sauve: a$ = FILE_NAME$(84) IF LEN(a$) > 4 THEN TEXT 82, a$ f$ = TEXT$(82): IF LEN(f$) < 4 THEN RETURN IF UPPER$(RIGHT$(f$, 4)) <> ".BMP" AND UPPER$(RIGHT$(f$,4)) <> ".JPG" MESSAGE "Nom incorrect, le fichier doit être en .BMP ou .JPG !" RETURN END_IF IF gril = 1 THEN 2D_IMAGE_PASTE np+1,0,0: gril = 0: ' effacement grille IF UPPER$(RIGHT$(f$,4)) = ".JPG" FILE_SAVE np, "C:\Temp\Tmp.bmp" EXECUTE_WAIT iv$ + "C:\Temp\Tmp.bmp /convert=" + f$ FILE_DELETE "C:\Temp\Tmp.bmp" ELSE FILE_SAVE np, f$ END_IF IF CHECKED(ch) = 1: ' modifier date/heure (format /D mm-jj-aaaa /T hh:mm:ss) a$ = "/W /C /D " + RIGHT$("0"+STR$(POSITION(sh+1)),2)+"-"+RIGHT$("0"+STR$(POSITION(sh+2)),2) a$ = a$ + "-"+STR$(POSITION(sh))+" /T "+ RIGHT$("0"+STR$(POSITION(sh+3)),2)+":" a$ = a$ + RIGHT$("0"+STR$(POSITION(sh+4)),2)+":"+RIGHT$("0"+STR$(POSITION(sh+5)),2) EXECUTE_WAIT mh$ + a$ + " " + f$ END_IF RETURN
Chcad: FOR i% = 67 TO 71 IF CLICKED(i%) = 1 THEN EXIT_FOR NEXT i% POSITION 63, i%-66: ' n° de cadre choisi RETURN
Descad: IF POSITION(sc) > 0 ' il y a un cadre 2D_TARGET_IS np: ra% = COLOR_PIXEL_RED(cc,1,1): ga% = COLOR_PIXEL_GREEN(cc,1,1) ba% = COLOR_PIXEL_BLUE(cc,1,1): 2D_PEN_COLOR ra%,ga%,ba% i% = POSITION(sc): et% = POSITION(sc+1): ' n° du cadre et épaisseur du trait IF i%<5 IF et% > 20 THEN et% = 20: POSITION sc+1,et%: ' limite Panoramic 2D_PEN_WIDTH et% ELSE IF et% < 2 THEN et% = 10: POSITION sc+1, et%: ' cadre solide END_IF SELECT i% CASE 1: 2D_LINE 15,15,wp-15,15: 2D_POLY_TO wp-15,hp-15: 2D_POLY_TO 15,hp-15 2D_POLY_TO 15,15 CASE 2: 2D_LINE wp-40,15,40,15: r = 25 FOR an = pi/2+.1 TO pi STEP .05 x% = 40+r*COS(an): y% = 40-r*SIN(an): 2D_POLY_TO x%, y% NEXT an 2D_POLY_TO 15,hp-40 FOR an = pi+.1 TO 3*pi/2 STEP .05 x% = 40+r*COS(an): y% = (hp-40)-r*SIN(an): 2D_POLY_TO x%, y% NEXT an 2D_POLY_TO wp-40,hp-15 FOR an = 3*pi/2+.1 TO 2*pi STEP .05 x% = (wp-40)+r*COS(an): y% = (hp-40)-r*SIN(an): 2D_POLY_TO x%, y% NEXT an 2D_POLY_TO wp-15,40 FOR an = 0+.1 TO pi/2 STEP .05 x% = (wp-40)+r*COS(an): y% = 40-r*SIN(an): 2D_POLY_TO x%, y% NEXT an CASE 3: 2D_LINE wp-40,15,40,15: 2D_POLY_TO 40,30: 2D_POLY_TO 15,30 2D_POLY_TO 15,15: 2D_POLY_TO 30,15: 2D_POLY_TO 30,40 2D_POLY_TO 15,40: 2D_POLY_TO 15,hp-40: 2D_POLY_TO 30,hp-40 2D_POLY_TO 30,hp-15: 2D_POLY_TO 15,hp-15: 2D_POLY_TO 15,hp-30 2D_POLY_TO 40,hp-30: 2D_POLY_TO 40,hp-15: 2D_POLY_TO wp-40,hp-15 2D_POLY_TO wp-40,hp-30: 2D_POLY_TO wp-15,hp-30: 2D_POLY_TO wp-15,hp-15 2D_POLY_TO wp-30,hp-15: 2D_POLY_TO wp-30,hp-40: 2D_POLY_TO wp-15,hp-40 2D_POLY_TO wp-15,40: 2D_POLY_TO wp-30,40: 2D_POLY_TO wp-30,15 2D_POLY_TO wp-15,15: 2D_POLY_TO wp-15,30: 2D_POLY_TO wp-40,30 2D_POLY_TO wp-40,15 CASE 4: ea% = wp/2-20: eb% = hp/2-20: ' ellipse simple: demi grands axes 2D_LINE wp-20,hp/2,wp-20,hp/2 FOR an = 0+.1 TO 2*pi+.1 STEP .05 x% = wp/2+ea%*COS(an): y% = hp/2-eb%*SIN(an): 2D_POLY_TO x%,y% NEXT an CASE 5: ea% = wp/2-et%: eb% = hp/2-et%: ' ellipse entourée: demi grands axes 2D_PEN_WIDTH 1 2D_LINE wp-et%,hp/2,wp-et%,hp/2 FOR an = 0+.1 TO 2*pi+.1 STEP .05 x% = wp/2+ea%*COS(an): y% = hp/2-eb%*SIN(an): 2D_POLY_TO x%,y% NEXT an FOR j% = 0 TO hp-1 FOR i% = 0 TO wp-1 IF COLOR_PIXEL_RED(np,i%,j%)=ra% IF COLOR_PIXEL_GREEN(np,i%,j%)=ga% AND COLOR_PIXEL_BLUE(np,i%,j%)=ba% EXIT_FOR END_IF END_IF 2D_POINT i%,j% NEXT i% FOR i% = wp-1 TO 0 STEP -1 IF COLOR_PIXEL_RED(np,i%,j%)=ra% IF COLOR_PIXEL_GREEN(np,i%,j%)=ga% AND COLOR_PIXEL_BLUE(np,i%,j%)=ba% EXIT_FOR END_IF END_IF 2D_POINT i%,j% NEXT i% DISPLAY NEXT j% CASE 6: 2D_PEN_WIDTH 1: 2D_FILL_COLOR ra%,ga%,ba%: ' et% = largeur du cadre 2D_RECTANGLE 0,0,wp,et%-1: 2D_RECTANGLE 0,hp-et%,wp,hp 2D_RECTANGLE 0,0,et%-1,hp: 2D_RECTANGLE wp-et%,0,wp,hp 2D_PEN_COLOR 0,0,0 2D_LINE 0,0,et%-1,et%-1: 2D_LINE wp,0,wp-et%,et%-1 2D_LINE 0,hp,et%-1,hp-et%: 2D_LINE wp,hp,wp-et%,hp-et% 2D_PEN_WIDTH 2 2D_LINE et%-1,hp-et%,et%-1,et%-1: 2D_POLY_TO wp-et%,et%-1 2D_PEN_COLOR 255,255,255 2D_POLY_TO wp-et%,hp-et%: 2D_POLY_TO et%+1,hp-et% END_SELECT END_IF RETURN
Chfon: TEXT 201, ITEM_INDEX$(202) RETURN
Fonte: SHOW 200: TO_FOREGROUND 200 PRINT_TARGET_IS 211 ntx = 1: IF CLICKED(m2+1) = 1 THEN ntx = 2 TEXT 201, fnt$(ntx): POSITION 203, sz%(ntx) COLOR 208,cr%(ntx),cg%(ntx),cb%(ntx) FONT_NAME 211, fnt$(ntx): FONT_SIZE 211, sz%(ntx) FONT_COLOR 211, cr%(ntx),cg%(ntx),cb%(ntx) FONT_BOLD_OFF 211: FONT_ITALIC_OFF 212: FONT_UNDERLINE_OFF 212 MARK_OFF 204: MARK_OFF 205: MARK_OFF 206 IF enr$(ntx) <> "" IF INSTR(enr$(ntx), "G") > 0 THEN FONT_BOLD 211: MARK_ON 204 IF INSTR(enr$(ntx), "I") > 0 THEN FONT_ITALIC 211: MARK_ON 205 IF INSTR(enr$(ntx), "S") > 0 THEN FONT_UNDERLINE 211: MARK_ON 206 END_IF MARK_OFF 212: IF ft%(ntx) = 1 THEN MARK_ON 212 2D_TARGET_IS 211: CLS: 2D_FILL_COLOR 200,200,200 IF COUNT(mm(ntx)) = 0 PRINT "AbCdEf" ELSE ht% = TEXT_HEIGHT(ITEM_READ$(mm(ntx), 1), 211): y% = 0 FOR i% = 1 TO COUNT(mm(ntx)) PRINT_LOCATE 0, y%: PRINT ITEM_READ$(mm(ntx), i%) y% = y% + ht% NEXT i% END_IF RETURN
Voir: FONT_NAME 211, TEXT$(201): FONT_SIZE 211, POSITION(203) FONT_COLOR 211, COLOR_PIXEL_RED(208,1,1),COLOR_PIXEL_GREEN(208,1,1),COLOR_PIXEL_BLUE(208,1,1) FONT_BOLD_OFF 211: FONT_ITALIC_OFF 211: FONT_UNDERLINE_OFF 211 IF CHECKED(204) = 1 THEN FONT_BOLD 211 IF CHECKED(205) = 1 THEN FONT_ITALIC 211 IF CHECKED(206) = 1 THEN FONT_UNDERLINE 211 2D_TARGET_IS 211: CLS: COLOR 211, 200,200,200 PRINT_TARGET_IS 211 IF COUNT(mm(ntx)) = 0 PRINT "AbCdEf" ELSE ht% = TEXT_HEIGHT(ITEM_READ$(mm(ntx), 1), 211): y% = 0 FOR i% = 1 TO COUNT(mm(ntx)) PRINT_LOCATE 0, y%: PRINT ITEM_READ$(mm(ntx), i%) y% = y% + ht% NEXT i% END_IF RETURN
Valfnt: fnt$(ntx) = TEXT$(201): sz%(ntx) = POSITION(203) cr%(ntx) = COLOR_PIXEL_RED(208,1,1) cg%(ntx) = COLOR_PIXEL_GREEN(208,1,1) cb%(ntx) = COLOR_PIXEL_BLUE(208,1,1) enr$(ntx) = "" IF CHECKED(204) = 1 THEN enr$(ntx) = "G" IF CHECKED(205) = 1 THEN enr$(ntx) = enr$(ntx) + "I" IF CHECKED(206) = 1 THEN enr$(ntx) = enr$(ntx) + "S" HIDE 200 a$ = fnt$(ntx) + ", " + STR$(sz%(ntx)) + ", " IF enr$(ntx) = "" a$ = a$ + "N" ELSE a$ = a$ + enr$(ntx) END_IF ft%(ntx) = 0: IF CHECKED(212) = 1 THEN ft%(ntx) = 1: a$ = a$ + ", Tr." m = mm(ntx): CAPTION m+8, a$ COLOR m+7, cr%(ntx),cg%(ntx),cb%(ntx) RETURN
Pipette: ' Clic un point de l'image pour en faire la couleur de fond des textes x% = MOUSE_X_LEFT_DOWN(np): y% = MOUSE_Y_LEFT_DOWN(np) COLOR cf,COLOR_PIXEL_RED(np,x%,y%),COLOR_PIXEL_GREEN(np,x%,y%),COLOR_PIXEL_BLUE(np,x%,y%) RETURN
Cfnd: tyc = 1 ra% = COLOR_PIXEL_RED(cf,1,1): ga% = COLOR_PIXEL_GREEN(cf,1,1) ba% = COLOR_PIXEL_BLUE(cf,1,1) 2D_TARGET_IS 302: 2D_FILL_COLOR ra%,ga%,ba%: 2D_RECTANGLE 0,0,WIDTH(302)-1,HEIGHT(302)-1 CAPTION 304,STR$(ra%)+","+STR$(ga%)+","+STR$(ba%) GOSUB Coul16 SHOW 300: TO_FOREGROUND 300 RETURN
Ccad: tyc = 2 ra% = COLOR_PIXEL_RED(cc,1,1): ga% = COLOR_PIXEL_GREEN(cc,1,1) ba% = COLOR_PIXEL_BLUE(cc,1,1) 2D_TARGET_IS 302: 2D_FILL_COLOR ra%,ga%,ba%: 2D_RECTANGLE 0,0,WIDTH(302)-1,HEIGHT(302)-1 CAPTION 304,STR$(ra%)+","+STR$(ga%)+","+STR$(ba%) GOSUB Coul16 SHOW 300: TO_FOREGROUND 300 RETURN
Ctxt: tyc = 3 ra% = COLOR_PIXEL_RED(208,1,1): ga% = COLOR_PIXEL_GREEN(208,1,1) ba% = COLOR_PIXEL_BLUE(208,1,1) 2D_TARGET_IS 302: 2D_FILL_COLOR ra%,ga%,ba%: 2D_RECTANGLE 0,0,WIDTH(302)-1,HEIGHT(302)-1 CAPTION 304,STR$(ra%)+","+STR$(ga%)+","+STR$(ba%) GOSUB Coul16 SHOW 300: TO_FOREGROUND 300 RETURN
Couleur: ' clic une couleur dans la palette x% = MOUSE_X_POSITION(301): y% = MOUSE_Y_POSITION(301) ra% = COLOR_PIXEL_RED(301,x%,y%) ga% = COLOR_PIXEL_GREEN(301,x%,y%) ba% = COLOR_PIXEL_BLUE(301,x%,y%) 2D_TARGET_IS 302: 2D_FILL_COLOR ra%,ga%,ba%: 2D_RECTANGLE 0,0,WIDTH(302)-1,HEIGHT(302)-1 CAPTION 304,STR$(ra%)+","+STR$(ga%)+","+STR$(ba%) RETURN
Valcou: HIDE 300 IF ra%<0 OR ra%>255 OR ga%<0 OR ga%>255 OR ba%<0 OR ba%>255 THEN RETURN SELECT tyc CASE 1: COLOR cf, ra%,ga%,ba% CASE 2: COLOR cc, ra%,ga%,ba% CASE 3: COLOR 208, ra%,ga%,ba% END_SELECT RETURN
Coul216: hct% = 36*(hco%+ecv%): HEIGHT 300, hct%+76: HEIGHT 301, hct% TOP 302,hct%+2: TOP 303,hct%+2: TOP 305,hct%+2: TOP 304,hct%+24 2D_TARGET_IS 301: COLOR 301,255,255,255 ra% = 0: ga% = 0: ba% = 0 FOR j% = 0 TO 35 y% = j%*(hco%+ecv%) FOR i% = 0 TO 5 x% = i%*(wco%+ech%) 2D_FILL_COLOR ra%,ga%,ba% 2D_RECTANGLE x%,y%,x%+wco%-1,y%+hco%-1 ba% = ba% + HEX("33") IF ba% > 255 ba% = 0: ga% = ga% + HEX("33") IF ga% > 255 ga% = 0: ra% = ra% + HEX("33") END_IF END_IF NEXT i% NEXT j% CAPTION 300, " - PALETTE DE 216 COULEURS (HTML) -" CAPTION 305, "16 couleurs": ON_CLICK 305, Coul16 RETURN
Coul16: DATA "16couleurs" DATA 0,0,0,0,0,128,0,128,0,0,128,128,128,0,0,128,0,128,128,64,0,192,192,192 DATA 128,128,128,0,0,255,0,255,0,0,255,255,255,0,0,255,0,255,255,255,0,255,255,255 RESTORE: READ a$: WHILE a$ <> "16couleurs": READ a$: END_WHILE wcd% = 36: hcd% = 30: ' dimensions d'une case couleur hct% = 2*(hcd%+ecv%): HEIGHT 300, hct%+92: HEIGHT 301, hct% TOP 302,hct%+8: TOP 303,hct%+8: TOP 305,hct%+8: TOP 304,hct%+28 2D_TARGET_IS 301: COLOR 301,255,255,255 FOR j% = 0 TO 1 y% = j%*(hcd%+ecv%)+1 FOR i% = 0 TO 7 x% = i%*(wcd%+ech%) READ ra%: READ ga%: READ ba% 2D_FILL_COLOR ra%,ga%,ba% 2D_RECTANGLE x%,y%,x%+wcd%-1,y%+hcd%-1 ba% = ba% + HEX("33") IF ba% > 255 ba% = 0: ga% = ga% + HEX("33") IF ga% > 255 ga% = 0: ra% = ra% + HEX("33") END_IF END_IF NEXT i% NEXT j% CAPTION 300, " - PALETTE DE 16 COULEURS -" CAPTION 305, "216 couleurs": ON_CLICK 305, Coul216 RETURN
Copier: IF gril = 1 THEN GOSUB Exec: ' pour effacer la grille avant copie CLIPBOARD_COPY np RETURN
Coller: CLIPBOARD_PASTE np f$ = "C:\Temp\2a2b3c4z.jpg" EXECUTE_WAIT iv$ + "/clippaste /convert=" + f$ GOSUB Img: FILE_LOAD np, f$ f$ = "C:\Temp\2a2b3c4z.jpg" TEXT 55,f$: MARK_ON 54 RETURN
Grille: 2D_TARGET_IS np IF gril = 0 PRINT_TARGET_IS np: FONT_NAME np,"Arial": FONT_SIZE np, 8 FONT_BOLD_OFF np: FONT_ITALIC_OFF np: FONT_UNDERLINE_OFF np FONT_COLOR np, 255,0,255: FONT_SIZE np, 8 2D_IMAGE_COPY np+1,0,0,wp-1,hp-1 2D_PEN_COLOR 255,0,255: 2D_PEN_WIDTH 1 FOR j% = 50 TO hp STEP 50 2D_LINE 0,j%,wp,j% PRINT_LOCATE 0,j%-7: PRINT STR$(j%) NEXT j% FOR i% = 50 TO wp STEP 50 2D_LINE i%,0,i%,hp PRINT_LOCATE i%-7,0: PRINT STR$(i%) NEXT i% gril = 1 ELSE 2D_IMAGE_PASTE np+1,0,0 gril = 0 END_IF RETURN
Aide: a$ = CHR$(9)+CHR$(9)+" - FABRICATION D'IMAGES-TITRES -"+rc$+rc$ a$=a$+"1) Rubrique 'Fond': choisir le fond d'image:"+rc$ a$=a$+"- Soit un fond uniforme: choisir la couleur."+rc$ a$=a$+"- Soit une image de fond: cliquer dans la zone d'édition pour choisir le"+rc$ a$=a$+"chemin de l'image, puis cocher la case 'Image'."+rc$ a$=a$+"Remarque: dans ce dernier cas, on pourra cliquer sur un emplacement quelconque"+rc$ a$=a$+"de l'image pour en faire la couleur de fond du texte (fonction pipette)."+rc$ a$=a$+"On peut récupérer une image du clipboard (bouton 'Coller') pour en faire l'image"+rc$ a$=a$+"de fond."+rc$+rc$ a$=a$+"2) Rubrique 'Encadrement': choisir un cadre éventuel pour l'image:"+rc$ a$=a$+"- Choisir un numéro suivant les modèles 1 à 6 (ou cliquer sur le cadre désiré),"+rc$ a$=a$+"l'épaisseur et la couleur du trait. Dans le cas du cadre rectangulaie épais (6),"+rc$ a$=a$+"l'épaisseur de trait correspond à la largeur de la bordure."+rc$ a$=a$+"La valeur 0 de numéro de cadre correspond à 'pas de cadre'."+rc$+rc$ a$=a$+"3) Texte superposé sur l'image:"+rc$ a$=a$+"- Possibilité de deux textes aux formats différents (police, taille, couleur)."+rc$ a$=a$+"Entrer le texte dans une des deux zones réservées, fixer son emplacement"+rc$ a$=a$+"dans l'image, en pixels: x, y, ou centrage. Le centrage a priorité sur les"+rc$ a$=a$+"coordonnées fixées."+rc$ a$=a$+"Bouton 'Fonte': définir les caractéristiques de police, taille, couleur,"+rc$ a$=a$+"enrichissements. Cocher éventuellement l'option 'fond transparent'."+rc$+rc$ a$=a$+"4) Bouton 'Exécuter': l'image s'affiche avec le texte éventuel."+rc$ a$=a$+"On peut modifier à tout moment l'un des éléments, puis cliquer à nouveau"+rc$ a$=a$+"sur le bouton 'Exécuter' pour valider les modifications."+rc$ a$=a$+"Le bouton 'Grille' fait apparaître une grille au pas de 50x50 pixels en"+rc$ a$=a$+"superposition sur l'image, pour repérages. La grille disparaît à la première"+rc$ a$=a$+"action sur 'Exec', ou pour l'enregistrement, ou par réappui sur 'Grille'."+rc$+rc$ a$=a$+"5) Enregistrement du résultat:"+rc$ a$=a$+"Cliquer 'Enregistrer', donner le chemin de l'image résultat, au format BMP"+rc$ a$=a$+"ou JPG."+rc$ a$=a$+"On peut également copier l'image résultat (bouton 'Copier') dans le clipboard,"+rc$ a$=a$+"pour récupération dans un logiciel graphique."+rc$ a$=a$+"On peut forcer la date/heure du fichier résultat: rubrique 'Date/Heure Fichier',"+rc$ a$=a$+"pour insertion automatique dans une série de photos classées par ordre"+rc$ a$=a$+"chronologique. Cette opération sera effectuée après enregistrement du fichier." MESSAGE a$ RETURN
14/4 correction de bug dans Descad, merci Jicehel 14/4 choix des couleurs modifié, plus simple 18/4 gestion des couleurs: choix palette de 16 ou de 216 couleurs 19/4 modification de la disposition des éléments, pour des écrans plus petits. Idem, un petit bug, et ajout d'une grille 50x50 pour repérage, sur demande. 20/4 petit bug (dans la pipette), amélioration de la grille. 21/4 disposition modifiée (boutons en haut à droite), ajout du bouton Coller. 15/5 un espace oublié dans l'Execute_wait du s/p Sauve.
Dernière édition par JL35 le Mar 15 Mai 2012 - 14:39, édité 13 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Fabrication d'images-titres (photos) Ven 13 Avr 2012 - 13:29 | |
| Je ne peux pas trop tester ici au boulot, mais bon, j'ai jeté un oeil sur l'interface et là, je dis bravo. Présentation très bien pensée une fois de plus.
Bon, je fais court, je remettrais un post ce soir ou demain quand j'aurais vraiment testé le programme | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Ven 13 Avr 2012 - 17:18 | |
| Merci Jicehel, ce n'est pas d'un intérêt puissant, mais ça peut servir à l'occasion (à moi en tout cas !). Il y a juste un petit truc qui me chiffonne dans l'exécution, mais on verra plus tard. Là je mets une version légèrement modifiée. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fabrication d'images-titres (photos) Ven 13 Avr 2012 - 20:11 | |
| Salut,
Je n'arrive pas à charger une photo, voilà ce que que je fais: - je fais un clic doit sur ma photo, je sélectionne propriété et je copie le chemin, ensuite je colle dans l'edit prévu à cet effet.
Mais çà marche pas.
Pourrais-tu mettre un OPEN_DIALOG pour rechercher l'image.
A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Ven 13 Avr 2012 - 20:39 | |
| Bonsoir Jean Claude, J'ai fait au plus simple, évidemment, mais je crois comprendre que tu ne fais pas complètement ce qui suit: - charger le chemin de la photo dans l'Edit - cocher le check 'Image' pour préciser que le fond est une image (sinon c'est la couleur définie au-dessus) - PUIS cliquer le bouton 'Exec' pour voir apparaître l'image dans la fenêtre. Le bouton Exec est la prise en compte et l'exécution de tous les paramètres fixés avant: fond, texte et cadre, avant ça il ne se passe rien.
Dis-moi si ça marche stp. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Fabrication d'images-titres (photos) Ven 13 Avr 2012 - 20:50 | |
| Merci pour ta réponse JL35,
Je regarde çà demain, j'ai de la visite....
A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Ven 13 Avr 2012 - 21:29 | |
| Bon, à la demande unanime de Jean Claude ( ), j'ai ajouté un open_dialog pour choisir l'image de fond (cliquer sur l'Edit correspondant). Mais je rappelle qu'en plus il faut cocher la case 'Image', puis cliquer le bouton 'Exec' pour que le programme s'exécute (prise en compte de tous les paramètres). Le résultat de la modification d'un paramètre n'est visible que par appui sur Exec. J'ai supprimé un bouton Undo initial qui ne servait à rien, puisqu'à chaque Exec le programme reprend entièrement tous les paramètres. J'ai choisi arbitrairement un format d'image de 640x480, qui me semble un bon compromis pour ce type d'image. Si on voulait plus grand, il faudrait réajuster quelques tailles (mais essentiellement les variables wp et hp: taille de l'image en pixels). J'avais un problème agaçant dans le dessin des caractères pixel par pixel (cas du fond 'transparent'), en fait je ne mettais pas des valeurs entières pour les x et y, et ça me sautait parfois un pixel sur deux ! c'est réparé. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Fabrication d'images-titres (photos) Sam 14 Avr 2012 - 1:21 | |
| Désolé JL35, j'ai des soucis avec ton programme... Encore à cause de la résolution max en hauteur de mon portable, je pense et au comportement sur W7, je pense, la fenêtre de base mord sur le titre, ce qui est un peu embêtant, mais j'ai aussi une barre de défilement qui s'affiche à moitié au 2/3 de l'image. Une petite idée qui me semble sympa serait de reprendre ta fenêtre de sélection de couleur qui pourrait s'ouvrir par une icone pipette, par exemple (c'est moins galère que de retrouver la bonne teinte à partir des spin, je trouve) Dans la proc Descad: pour le CASE 2, il manque les % à la fin des x et de y - Code:
-
CASE 2: 2D_LINE wp-40,15,40,15: r = 25 FOR an = pi/2+.1 TO pi STEP .05 x% = 40+r*COS(an): y% = 40-r*SIN(an): 2D_POLY_TO x%, y% NEXT an 2D_POLY_TO 15,hp-40 FOR an = pi+.1 TO 3*pi/2 STEP .05 x% = 40+r*COS(an): y% = (hp-40)-r*SIN(an): 2D_POLY_TO x%, y% NEXT an 2D_POLY_TO wp-40,hp-15 FOR an = 3*pi/2+.1 TO 2*pi STEP .05 x% = (wp-40)+r*COS(an): y% = (hp-40)-r*SIN(an): 2D_POLY_TO x%, y% NEXT an 2D_POLY_TO wp-15,40 FOR an = 0+.1 TO pi/2 STEP .05 x% = (wp-40)+r*COS(an): y% = 40-r*SIN(an): 2D_POLY_TO x%, y% NEXT an | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Sam 14 Avr 2012 - 8:53 | |
| Merci Jicehel pour la remontée de bug ! Effectivement c'est un oubli, j'ai passé les x en x% because ça me posait un problème de dessin pixel par pixel, mais j'avais oublié cette partie ! dommage qu'on ne puisse pas définir une fois pour toutes au début le type d'une variable, par exemple DEFINT x,y (ce qui interdirait d'avoir deux variables de même nom et de types différents: x, x%, x$ etc, ce qui éviterait des confusions à mon avis) mais bon, c'est comme ça et ça n'excuse pas mon erreur. Pour le reste, effectivement j'ai tendance à profiter de mon large écran, pour des définitions plus basses il faudrait revoir la géographie de l'implantation des composants, par exemple l'image d'un côté et les paramètres de l'autre, au lieu de superposer. Je vais voir ça un peu plus tard, mais ça ne devrait pas poser de problème majeur. Pour les couleurs aussi, c'est vrai ce n'est pas très ergonomique comme ça. | |
| | | Invité Invité
| Sujet: Re: Fabrication d'images-titres (photos) Sam 14 Avr 2012 - 10:03 | |
| bonjour, - Citation :
- DEFINT x,y
Je ne suis pas trop d'accord la dessus. Seulement si c'est optionnel. La majorité de tes programmes, est faites avec des variables à un deux lettres, contrairement à nous. Comme au bon vieux temps. Moi, sa m'arrange d'utiliser a,a%,a$. Dans bien des cas, je regroupe des variables de même nom. Je me repère avec le nom et le type. Chacun son truc, il ne faut pas qu'une instruction soit une obligation. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Sam 14 Avr 2012 - 13:45 | |
| Salus cosmos, c'était optionnel en basic (d'ailleurs on n'avait pas besoin de déclarer les variables), ce n'était pas obligatoire du tout, il suffisait aussi de mettre % pour que ce soit un entier, ou de le définir comme tel (defint) pour l'ensemble du programme.
Moi perso ça me trouble de voir des variables de types différents qui portent le même nom, mais bon, qu'à cela ne tienne, je ne le fais pas ! c'est comme des variables avec des noms kilométriques, ça parle mieux mais c'est plus dur à écrire, mais chacun fait comme il le sent le mieux | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Sam 14 Avr 2012 - 16:29 | |
| Suite à la suggestion de Jicehel, j'ai modifié le choix des couleurs, c'est plus simple, on ne choisit plus une valeur RGB, un peu abstraite, mais on clique simplement sur la couleur désirée. @Jicehel Si la fenêtre du programme ne rentre pas dans ton écran, je te suggère de réduire progressivement le paramètre wp en tête du programme (c'est la largeur de l'image finale en pixels), pour réduire automatiquement la hauteur de la fenêtre. La définition de l'image finale sera un peu réduite en conséquence, mais ça n'a pas une grande importance pour ce genre d'image. On peut avec ça fabriquer des cartes de voeux de toutes sortes, en superposant du texte à une image, avec toutes sortes d'effets de textes et de couleurs, par exemple appliquer un effet de relief au texte en superposant deux textes identiques de couleurs différentes, avec quelques pixels de décalage.
Dernière édition par JL35 le Mer 18 Avr 2012 - 16:53, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Mer 18 Avr 2012 - 16:29 | |
| Gestion des couleurs: choix dans une palette de 16 (implicite) ou de 216 couleurs.
Bien calme le forum ces jours-ci, un coup de fraîcheur ? | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Fabrication d'images-titres (photos) Mer 18 Avr 2012 - 22:16 | |
| A part le problème lié à Panoramic / W7, je pense sur la taille de la barre de titre et ascenseur lié à la taille de mon écran (j'ai essayé de baisser wp, mais je dois vraiment trop baisser, je préfère encore garder ascenseur), tout marche bien et en effet, la palette pour les nuances, ça marche super bien (en plus pour baisser la taille, j'ai juste dû changer le calcul de hct% en mettant 24*(hco%+ecv%) à la place. Tout le reste est automatique avec ton programme. Pratique | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Mer 18 Avr 2012 - 22:39 | |
| Merci du retour Jicehel, ça fait plaisir de voir que tu as mis le nez dans le programme pour l'adapter à tes besoins. Chez moi j'ai ajouté un bouton 'Copier' à gauche de 'Enregistrer sous', qui copie toute l'image dans le clipboard, pour récupération rapide (Coller) dans un traitement d'images, c'est plus pratique que de l'enregistrer. Mais comme ce n'est qu'une petite modif (un bouton et un sous programme d'1 ligne) je n'ai pas mis à jour le source ici. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Fabrication d'images-titres (photos) Mer 18 Avr 2012 - 22:47 | |
| Tu sais comme je vois que tu t'interesses à l'interface, je me disais qu'une présentation sympa, serait des petits rectangles sur le coté avec fond, cadre, date, texte 1, texte 2, Sauvegarder, un espace et le boutton quitter avec ton image à coté. Le clique sur le bouton ferait apparaitre la fenêtre sur l'image, on fait ca que l'on a à faire et on clique sur Exec ou ok pour valider => mise à jour de l'image ou annuler pour retour sans modif.
Mais bon, tu ne vas pas tout modifier maintenant que le programme est finit, c'est juste une proposition d'interfaçage pour tes futurs programmes. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Mer 18 Avr 2012 - 23:02 | |
| J'y ai bien pensé à tout ça, il faudrait tout reprendre et tout paramétrer pour pouvoir disposer et redimensionner les fenêtres à sa guise ensuite. Ce qui m'a un peu gêné c'est la taille des deux fenêtres 'Texte' qui doit être assez conséquente pour tout contenir et je n'ai pas trop su comment disposer tout ça. En fait, comme d'hab, j'ai fait ça un peu au fur et à mesure, en rajoutant des éléments, il faudrait faire une étude plus sérieuse de la géographie avant de commencer... Mais je ne dis pas que je ne reprendrai pas tout pour que ça tienne dans un écran plus petit (en moins haut et plus large). | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Fabrication d'images-titres (photos) Mer 18 Avr 2012 - 23:18 | |
| C'est bien dans ce sens que je le dis, juste pour avoir dans l'idée du squelette de Klaus, une espèce de principe d'interfaçage. Mais comme tu dis, au début, on ne pense utiliser qu'un bouton ou deux, alors on ne part pas sur ce type de fonctionnement. On est tous pareil | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Mer 18 Avr 2012 - 23:23 | |
| Exact ! une idée toute simple au départ, qui grossit petit à petit ! c'est vrai qu'il y a des choses auxquelles on ne peut penser qu'après avoir bien avancé dans le codage. Donc il faudrait faire d'abord un prototype, puis le modèle commercial. Mais moi je reste en général dans le prototype qui demande toujours un petit truc en plus... Et sur ces réflexions hautement philosophiques... bonne nuit ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Jeu 19 Avr 2012 - 11:38 | |
| Simple curiosité Jicehel, mais de combien de pixels libres disposes-tu en hauteur, sur ton écran... modèle réduit | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Fabrication d'images-titres (photos) Jeu 19 Avr 2012 - 12:01 | |
| De tête, ça doit être 762, je crois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Jeu 19 Avr 2012 - 13:25 | |
| C'est peu... mais bon, je vais voir si je peux aménager tout ça. T'inquiètes, ça m'amuse... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Fabrication d'images-titres (photos) Jeu 19 Avr 2012 - 14:13 | |
| Dans ce cas alors fais toi plaisir ^^, moi, ça m'arrange. (En plus tu ouvres la voie à Bignono pour qu'il fasse des interfaces compatibles avec les portables ...) | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Fabrication d'images-titres (photos) Jeu 19 Avr 2012 - 18:08 | |
| C'est bon, c'est quasiment fini (derniers tests, pour être sûr, j'ai un peu tout chamboulé), avec un form 0 de 980 pixels de large sur 740 pixels de haut au total, ça devrait tenir chez toi, on pourrait même à la rigueur gagner quelques dizaines de pixels (mais pas plus !). Toujours avec une image de 640x480.
Voilà, c'est mis à jour dans le premier post, théoriquement ça devrait tenir dans un écran de 1024x768 minimum.
Dernière édition par JL35 le Jeu 19 Avr 2012 - 18:31, édité 1 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Fabrication d'images-titres (photos) Jeu 19 Avr 2012 - 18:30 | |
| OK, je pars du boulot, d'ici à ce que je sois chez moi, tu as le temps de tester ^^. Une fois que tu seras satisfait, mets le code, comme ça je confirme après celui de Jean-Claude en arrivant | |
| | | Contenu sponsorisé
| Sujet: Re: Fabrication d'images-titres (photos) | |
| |
| | | | Fabrication d'images-titres (photos) | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |