Icons mit Buchstaben und Zahlen generieren
Moderator: Moderatoren
- ssemleit
- UDF-Programmierer
- Beiträge: 95
- Registriert: Di, 08. Mär 2016 11:32
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 7 Mal
Icons mit Buchstaben und Zahlen generieren
Hallo,
kennt jemand einen Weg, wie man Icons aufgrund eines Textes und eines Hintergrunds generieren kann.
Aktuell haben wir im Sprachgebrauch des Anwenders "Gelbes O" oder "Grünes K" etc.
Ist historsch gewachsen und das kriegen wir auch nicht mehr weg.
"Gelbes O" "Grünes K" Die aktuellen Icons sehen etwas altbacken aus und ich würde gerne automatisiert neue erstellen.
Ich stelle mir vor, dass der Hintergrund als Icon angegeben wird und per Schriftart und -größe soll
ein Buchstaben oder eine Zahl über das Icon gepinselt werden.
Daraus möchte ich dann eine neue Icon-Datei mit unterschiedlichen Auflösungen erstellen
Icon muss sein, da wir das in unzähligen Ressourcen haben und ich da nix ändern will.
kennt jemand einen Weg, wie man Icons aufgrund eines Textes und eines Hintergrunds generieren kann.
Aktuell haben wir im Sprachgebrauch des Anwenders "Gelbes O" oder "Grünes K" etc.
Ist historsch gewachsen und das kriegen wir auch nicht mehr weg.
"Gelbes O" "Grünes K" Die aktuellen Icons sehen etwas altbacken aus und ich würde gerne automatisiert neue erstellen.
Ich stelle mir vor, dass der Hintergrund als Icon angegeben wird und per Schriftart und -größe soll
ein Buchstaben oder eine Zahl über das Icon gepinselt werden.
Daraus möchte ich dann eine neue Icon-Datei mit unterschiedlichen Auflösungen erstellen
Icon muss sein, da wir das in unzähligen Ressourcen haben und ich da nix ändern will.
Gruß
Stefan
Stefan
- hel-systems
- Rookie
- Beiträge: 10
- Registriert: Mo, 30. Jul 2007 17:47
- Wohnort: Nettetal
- Kontaktdaten:
Re: Icons mit Buchstaben und Zahlen generieren
ich bin mir nicht sicher ob das für dich der richtige Weg ist, vielleicht klappt das mit ImageMagick (das kann soweit ich weiss ico-Files erstellen).
Du nimmst eine rein weisse png mit 256x256 als Grundlage, dann kannst du mit convert von imagemagick das weiss gegen die von dir gewünschte Farbe tauschen (convert weiss256.png -fuzz 0% -fill rgb(x,y,z) neu256.png), dann den Buchstaben drauf schreiben (convert neu256.png -gravity center -pointsize 20 -annotate 0 'X' neu256.png), dann resize in die verschiedenen Größen (convert neu256.png -resize 128x128 neu128.png usw mit 96,64,48,32 was man alles braucht) und zum Schluß das ganze als ico ausgeben (convert neu256.png neu128.png neu96.png ... neu.ico)
Ich bin mir bei den Parametern nicht ganz sicher.
Aber das in einem Batch sollte dein Problem wenn ich dich richtig verstanden habe lösen.
Bis dann
Helmut
Du nimmst eine rein weisse png mit 256x256 als Grundlage, dann kannst du mit convert von imagemagick das weiss gegen die von dir gewünschte Farbe tauschen (convert weiss256.png -fuzz 0% -fill rgb(x,y,z) neu256.png), dann den Buchstaben drauf schreiben (convert neu256.png -gravity center -pointsize 20 -annotate 0 'X' neu256.png), dann resize in die verschiedenen Größen (convert neu256.png -resize 128x128 neu128.png usw mit 96,64,48,32 was man alles braucht) und zum Schluß das ganze als ico ausgeben (convert neu256.png neu128.png neu96.png ... neu.ico)
Ich bin mir bei den Parametern nicht ganz sicher.
Aber das in einem Batch sollte dein Problem wenn ich dich richtig verstanden habe lösen.
Bis dann
Helmut
Zuletzt geändert von hel-systems am Fr, 12. Mai 2023 11:16, insgesamt 1-mal geändert.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9110
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 82 Mal
- Danksagung erhalten: 281 Mal
- Kontaktdaten:
Re: Icons mit Buchstaben und Zahlen generieren
Wir machen das mit Ownerdrawing, etwa, um bei einem aktiven Filter in einem kleinen Kreis die Anzahl der Treffer zu zeigen, oder im Nachrichtensystem die Anzahl der Nachrichten. Das ist flexibler und kostet nicht so viele Ressourcen, aber es nutzt auch die alte GDI (Kreise sind also eher Vielecke) und man kann das Icon selbst nicht als PS verwenden.
Edit: Dass es etwas unsauber aussieht, liegt an der Vergrößerung des Screenshots. Die Icons selbst sind kantenglatt.Herzlich,
Tom
Tom
- ssemleit
- UDF-Programmierer
- Beiträge: 95
- Registriert: Di, 08. Mär 2016 11:32
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 7 Mal
Re: Icons mit Buchstaben und Zahlen generieren
Ich bin da schon auf "fertige" .ico angewiesen, da wir die Icons u.a. in HTML-Elementen (::visualStyle,::caption) und XbpToolBar verwenden.
Gruß
Stefan
Stefan
- AUGE_OHR
- Marvin
- Beiträge: 12859
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 18 Mal
- Danksagung erhalten: 42 Mal
Re: Icons mit Buchstaben und Zahlen generieren
hi,
nun kann man eine Bitmap leicht "selbst" erstellen
diese Method verwende ich bei DragDrop um "anzuzeigen" was ich verschieben will
p.s. das Original XbpToolbar() benötig ""MsComCtl.OCX" was NICHT Bestandteil eines "aktuellen" OS ist
es muss kein Icon sein, es geht auch Bitmap & Conumerischen Resource-Id, sowie XbpBitmap- oder XbpIcon-Objekts
nun kann man eine Bitmap leicht "selbst" erstellen
diese Method verwende ich bei DragDrop um "anzuzeigen" was ich verschieben will
Code: Alles auswählen
METHOD DXEMultiCellgroup:_Text2BMP( cText, aRect )
LOCAL oBitmap := XBPBITMAP() :new() :create()
LOCAL oPS := XBPPRESSPACE() :new()
LOCAL oFont := XBPFONT() :New()
LOCAL cFont := FONT_DEFFIXED_SMALL
LOCAL nSizeX := aRect[ 3 ] - aRect[ 1 ]
LOCAL nSizeY := aRect[ 4 ] - aRect[ 2 ]
LOCAL nColor := GRA_CLR_WHITE
LOCAL nClr
LOCAL nStart := 1
LOCAL nPosi := 0
nColor := ::_HiliteText( @cText )
IF nColor == 33554431
nClr := 16777216
ELSE
nClr := 33554431
ENDIF
oBitmap:transparentClr := nClr
oPS:create( oBitmap, { nSizeX, nSizeY } )
oBitmap:presSpace( oPS )
oBitmap:make( nSizeX, nSizeY )
oFont:Create( cFont )
GraSetFont( oPS, oFont )
GraSetColor( oPS, nColor, nColor )
GraBox( oPS, { 0, 0 }, { nSizeX, nSizeY }, 1 )
nPosi := AT( CRLF, cText, nStart )
IF nPosi > 0
cText := SUBSTR( cText, nStart, nPosi - 1 )
ELSE
cText := SUBSTR( cText, nStart )
ENDIF
GraSetColor( oPS, GRA_CLR_BLACK, nColor )
GraStringAt( oPS, { 10, 0 }, cText )
FERASE( "DragDrop.JPG" )
oBitmap:SaveFile( "DragDrop.JPG", XBPBMP_FORMAT_JPG, 50 )
RETURN oBitmap
gruss by OHR
Jimmy
Jimmy
- ssemleit
- UDF-Programmierer
- Beiträge: 95
- Registriert: Di, 08. Mär 2016 11:32
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 7 Mal
Re: Icons mit Buchstaben und Zahlen generieren
@Helmut
Mit ImageMagick kommen wir gut klar. Danke!
Die Kollegen können damit selbständig ohne Programmierung verschiedene Schriftgrößen, Farbe etc. in Ruhe ausprobieren.
Ich binde dann nur noch die geänderten Files in die Ressourcen ein und fertig
@Jimmy
Danke für die Hinweise.
Mit ImageMagick kommen wir gut klar. Danke!
Die Kollegen können damit selbständig ohne Programmierung verschiedene Schriftgrößen, Farbe etc. in Ruhe ausprobieren.
Ich binde dann nur noch die geänderten Files in die Ressourcen ein und fertig

@Jimmy
Danke für die Hinweise.
Gruß
Stefan
Stefan