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 |
|
|
| Icônes économiques | |
| | |
Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Icônes économiques Mar 1 Sep 2015 - 22:46 | |
| J'ai déjà posté un truc du même genre, je l'ai un peu étoffé. Le principe est de se fabriquer des icônes à partir des polices graphiques standards (Wingdings, etc.) On choisit la police parmi les 5 proposées, et on choisit le caractère, qui s'affiche dans une fenêtre à part avec une taille réglable. Je rappelle que la taille de police n'est pas limitée (apparemment), et comme ce sont des polices vectorielles on a toujours un caractère 'propre' quelle que soit sa taille. Il est alors possible de sauvegarder l'icône obtenue (= le caractère) soit au format .bmp, dans la taille d'affichage, soit au format .ico dans une taille standard à choisir (de 16x16 à 256x256 pixels). Pour le format ico il faut avoir le programme IrfanView installé. Toutes les icônes sont en noir et blanc, on pourrait éventuellement les afficher (et sauvegarder) dans des couleurs données de fond et de caractère, mais ce n'est pas implémenté. - Code:
-
' Affichage des polices de caractères graphiques Windows LABEL Quit,Npol,Npol1,Chpol,Chpol1,Vunico,Unic,Unic1,Chcar,Chcar1,Selcou,Coulperm LABEL Clip,Transpar,Converti,Convertb,Car2pic,Hlp,Hlp1 DIM kgf$,iv$,bv%,bh%,i%,j%,k%,fnt$,x%,y%,hc%,pp%,p%(8),c%,hp%,wca%,hca%,w%,h% DIM lf%,wf%,fr$,r%,g%,b%,rc%,gc%,bc%,rf%,gf%,bf%,bgr%,a$,rc$,uni%,pf%
iv$ = "C:\Progra~2\Irfanv~1\i_view32.exe": ' <= IrfanView, à ajuster (inutilisé) kgf$ = "C:\PANORAMIC\KLAUS\DLLs\KGF.dll": ' <======= CHEMIN À AJUSTER ==========
WIDTH 0,880: HEIGHT 0,665 ' Dimensions des bordures (fonction de la version de Windows...) PICTURE 1: FULL_SPACE 1: bv%=HEIGHT(0)-HEIGHT(1): bh%=WIDTH(0)-WIDTH(1): DELETE 1 FONT_NAME 0,"Arial": FONT_SIZE 0,10: FONT_BOLD 0: BORDER_SMALL 0 COLOR 0,128,255,255: CAPTION 0," - POLICES 'SYMBOLES' -" lf% = 610: wf% = WIDTH(0)-lf%-bh%-5 CONTAINER_OPTION 10: TOP 10,2: LEFT 10,lf%: WIDTH 10,wf%: HEIGHT 10,110 CAPTION 10," POLICES GRAPHIQUES : ": COLOR 10,200,255,255 OPTION 11: PARENT 11,10: TOP 11,15: LEFT 11,20 WIDTH 11,140: CAPTION 11,"Bookdings" OPTION 12: PARENT 12,10: TOP 12,TOP(11): LEFT 12,LEFT(11)+110: CAPTION 12,"Webdings" OPTION 13: PARENT 13,10: TOP 13,TOP(11)+17: LEFT 13,LEFT(11): CAPTION 13,"Wingdings" OPTION 14: PARENT 14,10: TOP 14,TOP(13): LEFT 14,LEFT(12) CAPTION 14,"Wingdings 2" OPTION 15: PARENT 15,10: TOP 15,TOP(13)+17: LEFT 15,LEFT(13): CAPTION 15,"Wingdings 3" OPTION 16: PARENT 16,10: TOP 16,TOP(15)+17: LEFT 16,LEFT(11): CAPTION 16,"Autres" OPTION 17: PARENT 17,10: TOP 17,TOP(16): LEFT 17,LEFT(12): CAPTION 17,"Unicode" MARK_ON 12: fnt$ = "Webdings" FOR i% = 11 TO 17: ON_CLICK i%,Npol: NEXT i%
EDIT 18: TOP 18,TOP(10)+85: LEFT 18,LEFT(10): WIDTH 18,WIDTH(10): TEXT 18,"Webdings" FONT_COLOR 18,0,0,255: ON_CLICK 18,Chpol1 ALPHA 19: TOP 19,TOP(10)+HEIGHT(10): LEFT 19,lf%: COLOR 19,255,255,0 CAPTION 19," (clic un caractère ou son numéro) "
ALPHA 20: TOP 20,TOP(19)+25: LEFT 20,lf%+10: CAPTION 20,"Caractère: " EDIT 22: TOP 22,TOP(20)-3: LEFT 22,LEFT(20)+80: WIDTH 22,60 ALPHA 24: TOP 24,TOP(20)+22: LEFT 24,LEFT(20): CAPTION 24,"Taille :" SPIN 26: TOP 26,TOP(24)-3: LEFT 26,LEFT(22): WIDTH 26,WIDTH(22) MIN 26,4: MAX 26,1000: POSITION 26,128: ON_CHANGE 26,Chcar1 ALPHA 28: TOP 28,TOP(24)+27: LEFT 28,LEFT(24) CAPTION 28,"Dim.(WxH): pixels." EDIT 30: TOP 30,TOP(28)-3: LEFT 30,LEFT(26): WIDTH 30,WIDTH(26)
BUTTON 35: TOP 35,TOP(22)-2: WIDTH 35,55: LEFT 35,lf%+wf%-55: CAPTION 35,CHR$(26)+" Clip" ON_CLICK 35,Clip BUTTON 36: TOP 36,TOP(35)+32: WIDTH 36,68: HEIGHT 36,20: LEFT 36,LEFT(35)-10 FONT_BOLD_OFF 36: CAPTION 36,CHR$(27)+"permuter": ON_CLICK 36,Coulperm
' Un List et un Picture par colonne de 32 caractères ' List 40 à 54 step 2, Picture 41 à 55 step 2 k% = 39: x% = 2 hc% = 22: pp% = 1 HEIGHT 0,hc%*32+bv%+10 FOR i% = 0 TO 255 STEP 32 y% = 2: k% = k%+1 LIST k%: TOP k%,y%: LEFT k%,x%: WIDTH k%,40: HEIGHT k%,hc%*32 FONT_BOLD_OFF k%: FONT_SIZE k%,14: COLOR k%,255,255,190: ON_CLICK k%,Chcar HEIGHT k%,32*hc%+5: ' hauteur une case FOR j% = 0 TO 31: ITEM_ADD k%,RIGHT$(" "+STR$(i%+j%),3): NEXT j% x% = x%+WIDTH(k%): k% = k%+1 PICTURE k%: TOP k%,y%: LEFT k%,x%: WIDTH k%,35: HEIGHT k%,HEIGHT(k%-1) p%(pp%) = k%: ON_CLICK k%,Chcar PRINT_TARGET_IS k%: FONT_NAME k%,fnt$: FONT_SIZE k%,16 FOR j% = 0 TO 31: PRINT_LOCATE 5,j%*hc%: PRINT CHR$(i%+j%): NEXT j% x% = x%+WIDTH(k%): pp% = pp%+1 NEXT i%
CONTAINER 100: TOP 100,TOP(30)+22: LEFT 100,lf%: WIDTH 100,wf%: HEIGHT 100,55 COLOR 100,190,255,255 ALPHA 101: PARENT 101,100: TOP 101,12: LEFT 101,3: CAPTION 101,"Car. :" k% = 45 FOR i% = 1 TO 7: ' palette couleurs de caractères j% = 101+i% PICTURE j%: PARENT j%,100: TOP j%,11: LEFT j%,k%: WIDTH j%,20: HEIGHT j%,18 ON_CLICK j%,Selcou SELECT i% CASE 1: COLOR j%,0,0,0 CASE 2: COLOR j%,255,0,0 CASE 3: COLOR j%,0,255,0 CASE 4: COLOR j%,0,0,255 CASE 5: COLOR j%,255,255,0 CASE 6: COLOR j%,255,0,255 CASE 7: COLOR j%,0,255,255 END_SELECT k% = k%+25 NEXT i% pf% = 111 ALPHA pf%: PARENT pf%,100: TOP pf%,TOP(101)+20: LEFT pf%,LEFT(101): CAPTION pf%,"Fond:" k% = 45 FOR i% = 1 TO 7: ' palette couleurs de fond j% = pf%+i% PICTURE j%: PARENT j%,100: TOP j%,33: LEFT j%,k%: WIDTH j%,20: HEIGHT j%,18 ON_CLICK j%,Selcou SELECT i% CASE 1: COLOR j%,255,255,255 CASE 2: COLOR j%,255,128,128 CASE 3: COLOR j%,128,255,128 CASE 4: COLOR j%,128,128,255 CASE 5: COLOR j%,255,255,128 CASE 6: COLOR j%,255,128,255 CASE 7: COLOR j%,128,255,255 END_SELECT k% = k%+25 NEXT i% PICTURE 130: TOP 130,TOP(26)+1: LEFT 130,LEFT(26)+WIDTH(26)+5: WIDTH 130,30: HEIGHT 130,25 PICTURE 131: TOP 131,TOP(130)+6: LEFT 131,LEFT(130)+6: WIDTH 131,13: HEIGHT 131,13 COLOR 131,0,0,0
PICTURE 32: TOP 32,TOP(100)+HEIGHT(100)+5: LEFT 32,lf%+20: HEIGHT 32,200 WIDTH 32,200: ON_CLICK 32,Transpar: ' affichage du caractère en taille réelle CONTAINER 59: TOP 59,TOP(32)+HEIGHT(32)+2: LEFT 59,lf%: WIDTH 59,wf%: HEIGHT 59,120 COLOR 59,200,255,255 CONTAINER_OPTION 60: PARENT 60,59: TOP 60,0: LEFT 60,0: WIDTH 60,wf%: HEIGHT 60,60 CAPTION 60,"Caractère -> icône (.ico) :": COLOR 60,200,255,255 OPTION 61: PARENT 61,60: TOP 61,18: LEFT 61,3: CAPTION 61,"16x16" OPTION 62: PARENT 62,60: TOP 62,TOP(61): LEFT 62,LEFT(61)+60: CAPTION 62,"24x24" OPTION 63: PARENT 63,60: TOP 63,TOP(62): LEFT 63,LEFT(62)+60: CAPTION 63,"32x32" OPTION 64: PARENT 64,60: TOP 64,TOP(63): LEFT 64,LEFT(63)+60: CAPTION 64,"48x48" OPTION 65: PARENT 65,60: TOP 65,TOP(64)+20: LEFT 65,LEFT(61): CAPTION 65,"64x64": MARK_ON 65 OPTION 66: PARENT 66,60: TOP 66,TOP(65): LEFT 66,LEFT(62): CAPTION 66,"128x128" OPTION 67: PARENT 67,60: TOP 67,TOP(64)+20: LEFT 67,LEFT(63)+20: CAPTION 67,"256x256" CHECK 85: PARENT 85,59: TOP 85,TOP(60)+HEIGHT(60): LEFT 85,5: WIDTH 85,400 CAPTION 85,"Transp.=R: G: B:" EDIT 86: PARENT 86,59: TOP 86,TOP(85)-3: LEFT 86,LEFT(85)+85: WIDTH 86,40 EDIT 87: PARENT 87,59: TOP 87,TOP(86): LEFT 87,LEFT(86)+60: WIDTH 87,40 EDIT 88: PARENT 88,59: TOP 88,TOP(86): LEFT 88,LEFT(87)+60: WIDTH 88,40 TEXT 86,"255": TEXT 87,"255": TEXT 88,"255" ALPHA 69: PARENT 69,59: TOP 69,TOP(60)+HEIGHT(60)+20: LEFT 69,0 FONT_ITALIC 69: CAPTION 69,"fichier résultat (.ico) :" EDIT 70: PARENT 70,59: TOP 70,TOP(69)+15: LEFT 70,0: WIDTH 70,wf% BUTTON 71: TOP 71,TOP(59)+HEIGHT(59): LEFT 71,lf%+wf%-110: WIDTH 71,110 HEIGHT 71,20: CAPTION 71,"Convertir .ICO": ON_CLICK 71,Converti
ALPHA 75: TOP 75,TOP(59)+HEIGHT(59)+20: LEFT 75,lf% CAPTION 75,"Caractère -> image (.bmp) :" EDIT 76: TOP 76,TOP(75)+16: LEFT 76,lf%: WIDTH 76,wf% BUTTON 77: TOP 77,TOP(76)+22: LEFT 77,LEFT(71): WIDTH 77,WIDTH(71) HEIGHT 77,20: CAPTION 77,"Convertir .BMP": ON_CLICK 77,Convertb
BUTTON 79: TOP 79,HEIGHT(0)-70: LEFT 79,lf%: WIDTH 79,30: CAPTION 79,"?" ON_CLICK 79,Hlp BUTTON 80: TOP 80,TOP(79): LEFT 80,LEFT(79)+40: CAPTION 80,"Quitter" ON_CLICK 80,Quit FORM 140: HIDE 140: LEFT 140,lf%: TOP 140,TOP(0)+110: WIDTH 140,240: HEIGHT 140,130 BORDER_SMALL 140: CAPTION 140, " CARACTÈRES UNICODE": FONT_BOLD 140 FONT_NAME 140,"Arial": FONT_SIZE 140,10: COLOR 140,255,255,0 ALPHA 141: PARENT 141,140: TOP 141,10: LEFT 141,5: CAPTION 141,"N° caractère :" SPIN 142: PARENT 142,140: TOP 142,TOP(141)-3: LEFT 142,LEFT(141)+90: WIDTH 142,60 ALPHA 143: PARENT 143,140: TOP 143,TOP(141)+30: LEFT 143,40 CAPTION 143,"Taille : pixels." SPIN 144: PARENT 144,140: TOP 144,TOP(143)-3: LEFT 144,LEFT(142): WIDTH 144,60 BUTTON 145: PARENT 145,140: TOP 145,TOP(142): WIDTH 145,60: LEFT 145,LEFT(142)+WIDTH(142)+5 CAPTION 145,"Voir tout": ON_CLICK 145,Vunico BUTTON 146: PARENT 146,140: TOP 146,TOP(144)+30: LEFT 146,80: CAPTION 146,"OK" ON_CLICK 146,Unic1
FORM 150: HIDE 150: LEFT 150,lf%-200: WIDTH 150,200: HEIGHT 150,HEIGHT(0) BORDER_HIDE 150 LIST 151: PARENT 151,150: FULL_SPACE 151: FONT_NAMES_LOAD 151: ON_CLICK 151,Chpol FONT_BOLD 151 FOR i% = COUNT(151) TO 1 STEP -1 IF LEFT$(ITEM_READ$(151,i%),1)="@" THEN ITEM_DELETE 151,i% NEXT i% FORM 160: HIDE 160: TOP 160,100: LEFT 160,50: WIDTH 160,540: HEIGHT 160,700: BORDER_SMALL 160 MEMO 161: PARENT 161,160: FULL_SPACE 161: COLOR 161,255,255,180 BUTTON 162: PARENT 162,160: TOP 162,HEIGHT(160)-60: LEFT 162,WIDTH(160)/2-50 CAPTION 162,"OK": ON_CLICK 162,Hlp1 FONT_NAME 161,"Arial": FONT_SIZE 161,10 PICTURE 200: HIDE 200 rc$ = CHR$(13)+CHR$(10) a$ = " - CARACTÈRES GRAPHIQUES EN ICÔNES -"+rc$+rc$ a$=a$+"1) Choisir la police de caractères (soit une des polices graphiques proposées,"+rc$ a$=a$+" soit une police quelconque ('Autres')."+rc$ a$=a$+" On peut également choisir l'option Unicode pour un choix plus vaste."+rc$+rc$ a$=a$+"2) Choisir la couleur de fond et la couleur de caractère à afficher, en cliquant"+rc$ a$=a$+" dans les zones colorées correspondantes. Les couleurs choisies s'affichent"+rc$ a$=a$+" dans le rectangle à droite de la taille caractère."+rc$ a$=a$+" On peut à tout moment permuter les couleurs de caractère/fond: bouton 'permuter'"+rc$+rc$ a$=a$+"3) Choisir un caractère à afficher en cliquant à gauche sur le caractère lui-même"+rc$ a$=a$+" ou sur son numéro."+rc$ a$=a$+" On peut faire varier la taille de l'image du caractère à droite en modulant sa taille,"+rc$ a$=a$+" les dimensions réelles du caractère en pixels en fonction de sa taille sont"+rc$ a$=a$+" actualisées en conséquence."+rc$ a$=a$+" Cas particulier Unicode: on entre successivement le numéro du caractère choisi"+rc$ a$=a$+" dans la fenêtre dédiée, puis la taille désirée de son affichage en pixels dans la"+rc$ a$=a$+" fenêtre 'Taille', puis on valide par 'OK'."+rc$ a$=a$+" --------------------------------"+rc$+rc$
a$=a$+"On peut alors convertir le caractère affiché en image bitmap ou en icône Windows."+rc$+rc$ a$=a$+"1) Conversion en image bitmap :"+rc$ a$=a$+" - Amener le caractère aux dimensions en pixels voulues en jouant sur sa taille."+rc$ a$=a$+" - Donner un chemin de fichier résultat (fichier .bmp)."+rc$ a$=a$+" - Cliquer 'Convertir .BMP'"+rc$+rc$ a$=a$+"2) Conversion en icône utilisable sous Windows :"+rc$ a$=a$+" - Choisir dans les options les dimensions de l'icône désirée."+rc$ a$=a$+" Le programme calcule la dimension de caractère la plus proche pour ce résultat."+rc$ a$=a$+" Cas d'un caractère Unicode: il faut choisir sa taille en fonction de la taille"+rc$ a$=a$+" finale désirée. Dans tous les cas l'image sera dimensionnée pour être à la"+rc$ a$=a$+" dimension standard choisie."+rc$ a$=a$+" On peut définir une couleur de transparence pour l'icône: cocher 'Transp.',"+rc$ a$=a$+" puis cliquer une zone de l'image qu'on souhaite transparente: la couleur choisie"+rc$ a$=a$+" est reportée dans les cases R, G, B."+rc$ a$=a$+" - Donner un chemin de fichier résultat (fichier .ico)."+rc$ a$=a$+" - Cliquer 'Convertir .ICO'"+rc$+rc$
ITEM_ADD 161,a$ rc% = 0: gc% = 0: bc% = 0: rf% = 255: gf% = 255: bf% = 255: ' noir/blanc END ' ============================================================================== Quit: TERMINATE ' ============================================================================== Npol: i% = NUMBER_CLICK HIDE 140: uni% = 0 SELECT i% CASE 11: fnt$ = "Bookdings" CASE 12: fnt$ = "Webdings" CASE 13: fnt$ = "Wingdings" CASE 14: fnt$ = "Wingdings 2" CASE 15: fnt$ = "Wingdings 3" CASE 16: SHOW 150: MARK_ON 16: RETURN CASE 17: fnt$ = "Unicode": uni% = 1: GOSUB Unic: RETURN END_SELECT Npol1: TEXT 18,fnt$ FOR pp% = 1 TO 8 i% = p%(pp%): 2D_TARGET_IS i%: CLS PRINT_TARGET_IS i%: FONT_NAME i%,fnt$ FOR j% = 0 TO 31 PRINT_LOCATE 5,j%*hc%: PRINT CHR$((pp%-1)*32+j%) NEXT j% NEXT pp% RETURN ' ============================================================================== Chpol: fnt$ = ITEM_INDEX$(151): HIDE 150 GOTO Npol1 Chpol1: SHOW 150: MARK_ON 16 RETURN ' ============================================================================== Vunico: Unicode() RETURN ' ============================================================================== Unic: TEXT 18,fnt$ SHOW 140 RETURN ' ============================================================================== Unic1: c% = POSITION(142): ' caractère IF POSITION(144) <= 0 THEN RETURN wca% = POSITION(144): ' taille TEXT 22,STR$(c%): TEXT 30,STR$(wca%)+"x"+STR$(wca%): ' mise à jour hca% = wca% GOSUB Chcar1: ' dessin du caractère RETURN ' ============================================================================== Chcar: i% = NUMBER_CLICK: IF i%<0 THEN RETURN: ' non cliqué IF ODD(i%) = 1: ' click dans un picture/caractère j% = MOUSE_Y_LEFT_DOWN(i%): j% = INT(j%/hc%) c% = VAL(ITEM_READ$(i%-1,j%+1)) ELSE c% = VAL(ITEM_INDEX$(i%)) END_IF TEXT 22,STR$(c%)
Chcar1: WIDTH 32,200: HEIGHT 32,200 2D_TARGET_IS 32: CLS: ' color 32,164,255,255 IF uni% = 1 ' caractère unicode TO_FOREGROUND 140 DLL_ON kgf$ i% = DLL_CALL2("GetUnicodeGraphic",c%,wca%) : ' unicode U+273 -> clipboard i% = DLL_CALL0("LoadPicture"): ' -> l'image interne i% = DLL_CALL6("ReplacePictureColor",255,255,255,rf%,gf%,bf%): ' couleur de fond i% = DLL_CALL6("ReplacePictureColor",0,0,0,rc%,gc%,bc%): ' couleur caractère i% = DLL_CALL0("SavePicture"): ' Image interne -> clipboard DLL_OFF CLIPBOARD_PASTE 32 ELSE PRINT_TARGET_IS 32: FONT_NAME 32,fnt$: FONT_SIZE 32,POSITION(26) 2D_FILL_COLOR rf%,gf%,bf%: FONT_COLOR 32,rc%,gc%,bc% wca% = TEXT_WIDTH(CHR$(c%),32): hca% = TEXT_HEIGHT(CHR$(c%),32) TEXT 30, STR$(wca%)+"x"+STR$(hca%) PRINT CHR$(c%) END_IF RETURN ' ============================================================================== Selcou: i% = NUMBER_CLICK x% = MOUSE_X_LEFT_DOWN(i%): y% = MOUSE_Y_LEFT_DOWN(i%) r%=COLOR_PIXEL_RED(i%,x%,y%): g%=COLOR_PIXEL_GREEN(i%,x%,y%): b%=COLOR_PIXEL_BLUE(i%,x%,y%) IF i%<pf%: ' couleur caractère COLOR 131,r%,g%,b%: rc%=r%: gc%=g%: bc%=b% ELSE COLOR 130,r%,g%,b%: rf%=r%: gf%=g%: bf%=b% END_IF GOSUB Chcar1 RETURN ' ============================================================================== Coulperm: ' Permutation des couleurs caractère/fond r%=rc%: g%=gc%: b%=bc%: rc%=rf%: gc%=gf%: bc%=bf%: rf%=r%: gf%=g%: bf%=b% COLOR 130,rf%,gf%,bf%: COLOR 131,rc%,gc%,bc% GOSUB Chcar1 RETURN ' ============================================================================== Clip: ' Recopie du caractère sélectionné dans le clipboard, aux dimensions actuelles IF TEXT$(22) = "" THEN MESSAGE "Sélectionner un caractère !": RETURN GOSUB Car2pic CLIPBOARD_COPY 200 RETURN ' ============================================================================== Transpar: x% = MOUSE_X_LEFT_DOWN(32): y% = MOUSE_Y_LEFT_DOWN(32) r%=COLOR_PIXEL_RED(32,x%,y%): g%=COLOR_PIXEL_GREEN(32,x%,y%): b%=COLOR_PIXEL_BLUE(32,x%,y%) TEXT 86,STR$(r%): TEXT 87,STR$(g%): TEXT 88,STR$(b%) RETURN ' ============================================================================== Converti: IF TEXT$(22) = "" THEN MESSAGE "Sélectionner un caractère !": RETURN fr$ = TEXT$(70) ' taille d'icône choisie FOR i% = 61 TO 67 IF CHECKED(i%) = 1 THEN EXIT_FOR NEXT i% SELECT i% CASE 61: w% = 16 CASE 62: w% = 24 CASE 63: w% = 32 CASE 64: w% = 48 CASE 65: w% = 64 CASE 66: w% = 128 CASE 67: w% = 256 END_SELECT ' dimensions image = approx. 4/3 de la taille caractère i% = w%*3/4: POSITION 26,i% GOSUB Car2pic IF fr$ = "" OR UPPER$(RIGHT$(fr$,4)) <> ".ICO" MESSAGE "Donner un fichier .ICO résultat !": RETURN END_IF CLIPBOARD_COPY 200 IF 1 = 1: ' Kgf.dll d'office ' Conversion en ICO avec KGF.dll: DLL_ON kgf$ i% = DLL_CALL2("ResizePicture",w%,w%): ' mise aux dimensions exactes de l'image du presse-papier IF CHECKED(85) = 1: ' couleur de transparence demandée bgr%=VAL(TEXT$(86))+256*VAL(TEXT$(87))+65536*VAL(TEXT$(88)) i% = DLL_CALL2("SetIconPictureMode",2,bgr%): ' -> couleur de transparence ELSE i% = DLL_CALL2("SetIconPictureMode",1,1): ' -> icône aux dimensions de la bitmap END_IF i% = DLL_CALL1("SaveAnyImageFile",ADR(fr$)): ' enregistrement en ICO DLL_OFF ELSE ' Conversion en ICO avec IrfanView ' clic dans l'image pour fixer la couleur de transparence a$ = "" IF CHECKED(85) = 1: ' couleur de transparence demandée a$ = "/transpcolor"+TEXT$(86)+","+TEXT$(87)+","+TEXT$(88)+") " END_IF a$ = a$+"/resize=("+STR$(w%)+","+STR$(w%)+")" EXECUTE_WAIT iv$+" /clippaste "+a$+" /convert="+fr$ END_IF RETURN ' ============================================================================== Convertb: IF TEXT$(22) = "" THEN MESSAGE "Sélectionner un caractère !": RETURN fr$ = TEXT$(76) IF fr$ = "" OR UPPER$(RIGHT$(fr$,4))<>".BMP" MESSAGE "Donner un fichier .BMP résultat !": RETURN END_IF GOSUB Car2pic FILE_SAVE 200,fr$ RETURN ' ============================================================================== Car2pic: ' écrire le caractère dans le picture caché WIDTH 200,wca%: HEIGHT 200,hca% 2D_TARGET_IS 200: CLS IF uni% = 1 CLIPBOARD_COPY 32: CLIPBOARD_PASTE 200 ELSE PRINT_TARGET_IS 200: FONT_NAME 200,fnt$: FONT_SIZE 200,POSITION(26) 2D_FILL_COLOR rf%,gf%,bf% FONT_COLOR 200,rc%,gc%,bc% PRINT CHR$(c%) END_IF RETURN ' ============================================================================== Hlp: SHOW 160: TO_FOREGROUND 160 RETURN ' ============================================================================== Hlp1: HIDE 160 RETURN ' ============================================================================== SUB Unicode() ' Visualisation des 65536 caractères Unicode, par pages de 256 caractères IF LABEL("Npage_Uni") = 0 THEN LABEL Npage_Uni IF LABEL("Chcar_Uni") = 0 THEN LABEL Chcar_Uni IF LABEL("Funic_Uni") = 0 THEN LABEL Funic_Uni DIM_LOCAL fm%,p%,s%,img%,e%,p1%,aa%,lc%,i%,x%,y%,kgf$,xc%(16),yr%(16),uc%,c%,r%,ca% DIM_LOCAL xs%,ys%,spr%,s2d%,res%,funic% s2d% = NUMBER_2D_TARGET: spr% = NUMBER_PRINT_TARGET kgf$ = "C:\PANORAMIC\KLAUS\DLLs\KGF.dll" lc% = 33: fm%=600 FORM fm%: WIDTH fm%,lc%*17+100: HEIGHT fm%,lc%*17+80: FONT_BOLD fm%: BORDER_SMALL fm% CAPTION fm%," - LISTE DES CARACTÈRES UNICODE -": COLOR fm%,190,255,255 ON_CLOSE fm%,Funic_Uni p%=fm%+1 PICTURE p%: PARENT p%,fm%: TOP p%,34: LEFT p%,5: WIDTH p%,lc%*17+1: HEIGHT p%,lc%*17+1 ON_CLICK p%,Chcar_Uni i%=p%+1: ALPHA i%: PARENT i%,fm%: TOP i%,8: LEFT i%,5 CAPTION i%,"Caractères unicode, page (0 à 255) :" s%=i%+1: SPIN s%: PARENT s%,fm%: TOP s%,TOP(s%-1)-3: LEFT s%,220: WIDTH s%,50 MIN s%,0: MAX s%,255: POSITION s%,0 i%=s%+1: BUTTON i%: PARENT i%,fm%: TOP i%,TOP(s%)-2: LEFT i%,LEFT(s%)+WIDTH(s%)+5 WIDTH i%,100: CAPTION i%,"Charger la page": ON_CLICK i%,Npage_Uni aa%=i%+1: ALPHA aa%: PARENT aa%,fm%: TOP aa%,8: LEFT aa%,LEFT(i%)+110 CAPTION aa%,"Caractères de 0 à 255" img%=aa%+1: IMAGE img% i%=img%+1: BUTTON i%: PARENT i%,fm%: LEFT i%,WIDTH(fm%)-95: CAPTION i%,"Quitter" ON_CLICK i%,Funic_Uni i%=i%+1: ALPHA i%: PARENT i%,fm%: TOP i%,TOP(p%)+200: LEFT i%,WIDTH(p%)+10 CAPTION i%,"Caractère :" e%=i%+1: EDIT e%: PARENT e%,fm%: TOP e%,TOP(i%)+16: LEFT e%,LEFT(i%): WIDTH e%,64 p1%=e%+1: PICTURE p1%: PARENT p1%,fm%: TOP p1%,TOP(e%)+30: LEFT p1%,LEFT(e%) WIDTH p1%,64: HEIGHT p1%,64 i%=p1%+1: ALPHA i%: PARENT i%,fm%: TOP i%,TOP(p1%)+HEIGHT(p1%)+3: LEFT i%,LEFT(p1%)+10 CAPTION i%,"64 x 64"+CHR$(10)+"(-> clip)"
COLOR p%,255,255,190: FONT_NAME p%,"Lucida Console": FONT_SIZE p%,11 2D_TARGET_IS p%: PRINT_TARGET_IS p% FOR y% = 0 TO lc%*17 STEP lc%: 2D_LINE 0,y%,WIDTH(p%),y%: NEXT y% FOR x% = 0 TO lc%*17 STEP lc%: 2D_LINE x%,0,x%,HEIGHT(p%): NEXT x% FOR y% = 0 TO 15 yr%(y%) = (y%+1)*lc%+1 PRINT_LOCATE 5,(y%+1)*lc%+8: PRINT RIGHT$(" "+STR$(y%),2) NEXT y% FOR x% = 0 TO 15 xc%(x%) = (x%+1)*lc%+1 PRINT_LOCATE (x%+1)*lc%+2,8: PRINT RIGHT$(" "+STR$(x%*16),3) NEXT x% DLL_ON kgf$ GOSUB Npage_Uni WHILE funic% = 0: PAUSE 200: END_WHILE: ' attente clic de fin DELETE fm%: DELETE img%: 2D_TARGET_IS s2d%: PRINT_TARGET_IS spr% DLL_OFF EXIT_SUB ' ------------------------------------------------------------------------------ Npage_Uni: uc% = POSITION(s%)*256: ' 1er caractère des 256 de la page CAPTION aa%,"Caractères de "+STR$(uc%)+" à "+STR$(uc%+255) ' affichage 256 caractères à partir de uc% ca% = uc% FOR c%=0 TO 15 FOR r%=0 TO 15 res% = DLL_CALL2("GetUnicodeGraphic",ca%,32) CLIPBOARD_PASTE img% 2D_IMAGE_PASTE img%,xc%(c%),yr%(r%) ca% = ca% + 1 NEXT r% NEXT c% TEXT e%,STR$(uc%) res% = DLL_CALL2("GetUnicodeGraphic",uc%,64): ' 1er caractère CLIPBOARD_PASTE p1% RETURN ' ------------------------------------------------------------------------------ Chcar_Uni: ' clic sur un caractère dan la page affichée xs% = MOUSE_X_LEFT_DOWN(p%): ys% = MOUSE_Y_LEFT_DOWN(p%) c% = INT(xs%/lc%)-1: r% = INT(ys%/lc%)-1 i% = uc%+c%*16+r% TEXT e%,STR$(i%) res% = DLL_CALL2("GetUnicodeGraphic",i%,64) CLIPBOARD_PASTE p1% RETURN ' ------------------------------------------------------------------------------ Funic_Uni: funic% = 1 RETURN END_SUB ' ==============================================================================
2/9 correction: oubli des couleurs dans conversion ico et bmp Ajout du choix de n'importe quelle police (exigence de Jean Claude) J'ai aussi changé les couleurs, un peu plus gaies. 3/9 Ajout de la gestion des caractère Unicode. 4/9 Ajout d'un visualiseur de tous (65536 !) les caractères Unicode, largement inspiré de celui de Klaus, en plus compact et plus fruste 5/9 Ajout de la possibilité de permuter les couleurs caractère/fond
Dernière édition par JL35 le Sam 5 Sep 2015 - 21:54, édité 11 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Mar 1 Sep 2015 - 23:53 | |
| Ça y est, j'ai mis des couleurs de base (caractère et fond), elles ne sont pas très jolies (surtout les caractères) mais c'est facilement modifiable (dans le container 100). Et c'est tout pour ce soir. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 7:28 | |
| Je mets un commentaire histoire de mettre un commentaire sur ton programme, mais que dire d'original. Comme d'habitude, c'est pratique et bien fait... Tout le reste, tu l'as déjà dit dans la description... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 7:50 | |
| C'est bien pratique de pouvoir transformer un caractère au format .bmp. Ainsi, on peut le travailler avec son programme de dessin préféré.
Une remarque: pourquoi se limiter à 5 polices ? Ne serait-il pas mieux de pouvoir toutes les sélectionner ?
Sinon, j'ai testé une sortie au format .bmp, ça marche, mais la taille est 85x85 quelque-soit l'option choisie.
A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 9:08 | |
| Merci les amis. Je viens de faire une correction, dans la précipitation du soir j'avais omis de reporter les couleurs dans les fichiers ico et bmp créés. @Jean Claude, Ce qui m'avait paru intéressant ce sont les polices symbol pour cet usage, mais rien n'empêche d'utiliser toutes les polices en modifiant un peu l'interface, le principe reste le même. Je verrais par exemple dans le Container_option du début une option 'Autres' qui renverrait à un choix dans toutes les polices. Quant à la taille des images bitmap, 85x85 est la taille de départ correspondant à la taille de caractère 64 qui est affichée au départ (c'est arbitraire). Avant sauvegarde de l'image, il faut l'ajuster à la taille voulue en modifiant la taille de caractère dans le Spin, la taille de l'image résultante est affichée en-dessous. ( ça m'avait semblé assez clair pour ne pas nécessiter d'explication... ) On peut aussi récupérer l'image dans le presse-papier (bouton 'Clip'). NB Tes désirs sont des ordres mon cher Jean Claude, j'ai ajouté le choix de n'importe quelle police (option 'Autres', ou clic dans le nom de la police affiché sous les options): (les petits rectangles à droite de la taille sont la couleur de caractère/couleur de fond, modifiés quand on clique sur une couleur). Ne reste plus qu'à savoir créer ses propres polices vectorielles pour les intégrer à Windows et créer ses propres icônes. J'ai bien des outils pour faire ça (par exemple Type Light), mais ça me paraît un peu complexe et je n'ai pas étudié la chose. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 13:13 | |
| - JL35 a écrit:
- Quant à la taille des images bitmap, 85x85 est la taille de départ correspondant à la taille de caractère 64 qui est affichée au départ (c'est arbitraire).
Avant sauvegarde de l'image, il faut l'ajuster à la taille voulue en modifiant la taille de caractère dans le Spin, la taille de l'image résultante est affichée en-dessous. (ça m'avait semblé assez clair pour ne pas nécessiter d'explication... )
Mea-culpa, je nais pas bien lu le titre du container_option, il est réservé au format icônes. Cet utilitaire simplifie la vie pour certains programmes où l'on veut remplacer les BUTTON(s) par des PICTURE(s). Tel quel, il est complet ! Bravo JL35. A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 19:39 | |
| Merci mon ami. Mais effectivement ce n'était pas forcément très clair, les icônes sont données pour des dimensions standard bien définies (le programme choisit la dimension de caractère la plus proche correspondante), les bitmap pour des dimensions libres, déterminées par la taille caractères choisie par l'utilisateur. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 20:48 | |
| Bon ! il faut bien que je titille.... Il va bien falloir que tu rendes tes interfaces universelles suivant les versions de Windows. Chez moi, (W10 ou W8 c'est idem), je dois agrandir, manuellement, la fenêtre de ton programme en largeur et en hauteur, pour tout voir. J'ai bien essayé de revoir ton code, mais ta façon de créer les objets me déroute. Je'ai tenté ma sub Retourne_Dimension_Bandeau_Et_Bord(), mais je n'y arrive pas. Allez, c'est gratuit.... Voit ce que tu peux faire - Code:
-
rem ==================================================================== SUB Retourne_Dimension_Bandeau_Et_Bord() ' controle de la position de la procédure dans le programme IF NUMBER_OBJECTS>0 message "La SUB 'Retourne_Dimension_Bandeau_Et_Bord' doit être placée avant la création du premier objet !" terminate END_IF ' création des VARIABLES GLOBALES IF VARIABLE("bandeau%")=0 then DIM bandeau% IF VARIABLE("bord%")=0 then DIM bord% ' Calcul de bandeau% et bord% dim_local w0%,h0%,w1%,h1%,w2%,h2% w0%=WIDTH(0) : h0%=HEIGHT(0) picture 1 : full_space 1 : w1%=WIDTH(1) : h1%=HEIGHT(1) w2%=w0%-w1% : h2%=h0%-h1% : bandeau%=h2%-(w2%/2) : bord%=w2%/2 ' Suppression du Picture devenu inutile delete 1 END_SUB rem ===============================================================
A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 21:00 | |
| Une solution simple, que je préconise: revenir sous Windows 7. Bon, d'accord, c'est pas possible, je regarde ailleurs... (un peu casse-burettes les mecs de windows...) | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 21:40 | |
| Bon, Jean Claude, j'ai essayé de tenir compte des dimensions des bordures de fenêtres, quel que soit le Windows, j'ai essayé sur un W8 (malgré son écran un peu juste) ça a l'air d'aller. J'ai également ajouté une petite fenêtre d'explications pour ceux qui auraient des doutes sur certains points, appelable par le petit bouton '?' tout en bas | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 23:08 | |
| Je confirme, je suis en W10 et plus de problème avec cette version | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Mer 2 Sep 2015 - 23:12 | |
| Merci Jicehel, au moins toi tu suis... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 0:49 | |
| Je suis passé en W10 aussi, et une petite galère pour la licence de Delphi 6 Personal Edition, je n'ai rencontré aucun problème. Je suis bluffé par la qualité de la migration de W8.1 vers W10. Bien entendu, j'ai désactivé toutes les options qui pourraient autoriser MS à collectionner des données et se les faire envoyer. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 7:43 | |
| Bon l'affichage sous W10, c'est réglé.
Il reste un tout petit truc (sans importance): Quand on change les couleurs de la police et du fond, il ne se passe rien à l'image, par contre çà fonctionne dès qu'on agit sur le spin. Ce serait mieux que les couleurs changent au moment du clic dans la palette.
A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 9:39 | |
| T'as raison (comme d'hab, ça m'énerve ), ça sera fait dès que j'aurais un moment de libre dans ma vie trépidante d'activités (ah, la retraite, c'est pas ce qu'on croit... je dis ça pour ceux qui bossent encore, qu'ils en profitent bien !) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 12:01 | |
| Tu as fait un bel outil, entièrement en Panoramic. Parfait ! Si tu veux utiliser KGF.dll, tu peux aussi récupérer les graphismes des plus de 65000 caractères Unicode, en écriture noire sur fond blanc. Comme ceci: - Code:
-
dim res% picture 17 : width 17,48 : height 17,48 res% = dll_call2("GetUnicodeGraphic",273,48) : ' unicode U+273 clipboard_paste 17
Ensuite, tu peux bien sûr intégrer ce graphisme dans n'importe quelle image, en utilisant le blanc comme couleur de transparence. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 13:20 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 13:30 | |
| Merci Klaus, et merci pour ta suggestion, je vais regarder ça de plus près.Je me demandais si ta fonction permettait de dimensionner le caractère à sa guise, mais oui puisqu'on donne la dimension désirée dans la fonction, donc c'est très intéressant. Et très facile à implémenter. @Jean Claude je m'aperçois avec ta citation que j'ai fait une faute d'orthographe: ... dès que j'aurais un moment de libre... voilà que je m'y mets moi aussi...
Dernière édition par JL35 le Jeu 3 Sep 2015 - 13:32, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 13:31 | |
| Oui, tu peux dimensionner au pixel près, à condition de prévoir un carré, pas un rectangle. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 13:33 | |
| On s'est croisés, mais c'est bon pour des carrés, c'est plutôt ce que je recherchais, pour des icônes. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 13:48 | |
| @Jean Claude
Euh, je viens de recharger ma mise à jour d'hier soir ici, pour être sûr (chez moi j'ai bricolé un peu entre temps), eh bien le clic sur la palette de couleurs provoque bien la mise à jour de couleur des petits carrés à droite de la taille, représentant les couleurs caractère et fond ??? ça ne marche pas chez toi ? Pardon, je n'ai rien dit, tu parlais de l'image elle-même... effectivement... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 13:58 | |
| Fait comme moi, JL35, va faire une sieste et tu verras, après, tout va rentrer dans l'ordre. AD'TALEUR. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 14:03 | |
| Et pendant que tu fais une sieste bien méritée, après m'avoir donné tes directives, moi je bosse ! (en fait, toi tu es plus ou moins au pays des siestes... avant la partie de boules ...). Bon c'est fait, c'était rien, une ligne à ajouter... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 17:07 | |
| Après une bonne sieste, j'ai plein d'idées de boulot à te filer Maintenant que tu as réparé le tout petit oubli d'affichage de la couleur, je t'ai trouvé de l'occupation Regarde cette image : Je voudrait un fond rouge et le camion en blanc. Hé bien, je ne peux pas. Ta palette de couleur est trop restrictive à mon goût. Bon, heu... je me sauve, je t'entends déjà hurler..... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Icônes économiques Jeu 3 Sep 2015 - 18:11 | |
| Mais non, je reste calme ! Tu prends ta boîte de crayons de couleur, ou celle de ton gamin... C'est vrai que la palette est très restrictive, mais il n'y avait pas beaucoup de place, alors j'ai pris les couleurs qui me paraissaient les plus vraisemblables, après tout ce ne sont que des icônes, pas des tableaux de maître, et je ne voulais pas faire un programme de dessin. La palette est très facilement modifiable par quiconque en a envie ! Là je suis en train d'intégrer les caractères unicode avec l'outil de Klaus, ça marche, mais je n'arrive pas à les colorier ensuite, et je ne vois pas pourquoi, un truc élémentaire m'échappe... Tiens Jean Claude, mais c'est bien pour te faire plaisir | |
| | | Contenu sponsorisé
| Sujet: Re: Icônes économiques | |
| |
| | | | Icônes économiques | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |