JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Création d'un cadre pour photo numérique Mer 24 Fév 2010 - 18:15 | |
| Comme d'hab avec les images, ça suppose l'utilisation de IrfanView. Ca contient un sous-programme (Crebmp) de création ex nihilo d'une image bmp de dimensions et de couleur donnés. Le principe: on crée des images neutres qui constituent les bordures, et qui sont ensuite assemblées avec l'image d'origine pour former l'image finale (fonction 'panorama' horizontal (1) ou vertical (2) de irfanview). Il faudra évidemment mettre une image à vous dans fim$. Et ajuster à votre goût la largeur des bordures eh%, evh% et evb% Voici: - Code:
-
' Cadre_Photo.bas Création d'un cadre photo DIM wf, hf, i%, j%, f$, fr$, f1$, fim$, fj$, fh$, fvh$, fvb$ DIM a$, c, k, r%, g%, b%, iv$, texte$ DIM eh%, evh%, evb%, w, h, dat$, rst% LABEL Fin, Jpgdim, Crebmp, ru, rv
iv$ = "C:\Progra~1\Irfanv~1\i_view32.exe " fim$ = "C:\Graph\Jpg\Dali\Dali03.jpg": ' ***** à remplacer par une photo à vous ***** texte$ = "Salvador Dali" f1$ = "C:\TEMP\tmp.JPG" fr$ = "C:\TEMP\Result.jpg" fj$ = "C:\TEMP\Infos.txt" fh$ = "C:\TEMP\fh.bmp" fvh$ = "C:\TEMP\fvh.bmp" fvb$ = "C:\TEMP\fvb.bmp"
f$ = fim$: GOSUB Jpgdim eh% = 20: ' bordure verticale, en pixels evh% = 10: evb% = 35: ' bordures horizontales, haut et bas, en pixels c = 255*256*256 + 255*256: ' couleur de la bordure: jaune (=ffff00) ' création des bordures Picture 1: Hide 1 wf = w: hf = evh%: f$ = fvh$: GOSUB Crebmp wf = w: hf = evb%: f$ = fvb$: GOSUB Crebmp wf = eh%: hf = h + evh% + evb%: f$ = fh$: GOSUB Crebmp
' Ecriture sur la bordure bas: width 1, w: Height 1, evb% File_Load 1, fvb$ Print_Target_Is 1: Font_Name 1, "Mistral": Font_Size 1, 18 2D_TARGET_IS 1: 2D_FILL_COLOR 255,255,0 PRINT_LOCATE 20, 3: Print texte$ File_Save 1, fvb$ ' assemblage V EXECUTE_WAIT iv$ + "/panorama=(2," + fvh$ + "," + fim$ + "," + fvb$ + ") /convert=" + f1$ ' assemblage H EXECUTE_WAIT iv$ + "/panorama=(1," + fh$ + "," + f1$ + "," + fh$ + ") /convert=" + fr$ FILE_DELETE f1$: FILE_DELETE fvh$: FILE_DELETE fvb$: FILE_DELETE fh$: ' nettoyage EXECUTE_WAIT iv$ + fr$: ' voir le résultat GOTO Fin END Fin: Terminate
Jpgdim: EXECUTE_WAIT iv$ + f$ + " /info=" + fj$ File_Open_Read 80, fj$ ru: File_ReadLn 80, a$ If left$(a$, 16) <> "Image dimensions" then goto ru a$ = mid$(a$, 20, Len(a$)-19) k = Instr(a$, " "): w = VAL(Left$(a$, k-1)) a$ = Mid$(a$, k + 3, len(a$) - k - 2) k = Instr(a$, " ") : h = val(left$(a$, k-1)) rv: File_ReadLn 80, a$ If Left$(a$, 9) <> "File date" Then Goto rv dat$ = mid$(a$, 18, 10): dat$ = dat$ + mid$(a$, 30, 6) File_Close 80: File_Delete fj$ Return
Crebmp: ' création d'une image bmp f$, wf x hf, de couleur c (RGB) b% = BIN_AND(c, 255) g% = (BIN_AND(c, 255*256))/256 r% = (BIN_AND(c, 255*256*256))/65536 Width 1, wf: Height 1, hf 2D_Target_Is 1: 2D_Fill_Color r%, g%, b% 2D_Pen_Color r%, g%, b%: 2D_Rectangle 0, 0, wf-1, hf-1 File_Save 1, f$ RETURN EDIT: j'ai modifié le code ci-dessus pour ajout d'un texte dans la bordure, comme ceci: Dommage qu'on ne puisse pas écrire de manière transparente sur le fond, du moins je ne sais pas comment.
Dernière édition par JL35 le Jeu 25 Fév 2010 - 15:12, édité 3 fois | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Création d'un cadre pour photo numérique Mer 24 Fév 2010 - 23:01 | |
| Merci cosmos, il me semblait bien que je t'avais vu faire ça quelque part. Bon, on verra ça demain, là c'est l'heure de Bon sang, mais c'est bien sûr ! (comme disait le commissaire Bourrel). Ca marche parfaitement, merci mon ami cosmos ! Du coup: - je rectifie le code ci-dessus - et ça me donne de nouvelles idées...! | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Création d'un cadre pour photo numérique Jeu 25 Fév 2010 - 15:12 | |
| Du coup, j'ai trouvé une manière bien plus simple et bien plus rapide de créer un fichier bmp de taille et de couleur donnée: il suffit tout simplement de créer un picture de la taille donnée, de le remplir de la couleur donnée et de le sauvegarder dans un fichier bmp, et le tour est joué !
Voilà, je corrige le code ci-dessus. | |
|
Contenu sponsorisé
| Sujet: Re: Création d'un cadre pour photo numérique | |
| |
|