/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
font håndtering (grafisk display)
Fra : Lasse Madsen


Dato : 28-07-04 08:39

Hej

Jeg har på et tidspunkt set at nogen havde lavet et BMP billed med en
komplet font
(altså alle bokstaver/tal) og på en eller anden snedig måde lavede de en
form for "grid" i det billed i C hvor de kunne lave noget ala

lcd_putchar('a');

og så var der en rutine der kunne gå ind "i billedet" og finde 'a' jeg kunne
forestille mig at man havde et array med billedet i og hvis displayet er
320x240px ville arrayet vel være på f.eks. ( displayet's databåndbredde er
8bit )

unsigned char font[9600];

vidste man så på en eller anden måde at et 'A' lå i "position" 0,0 til 20,0
i første linje og stopper på position 20,20

så var det vel bare lave en slags X/Y plotter der læser 20 byte frem, hopper
en linje ned og læser 20 byte igen osv.

er der nogen her inde som har set en eller anden smart rutine til at gøre
dette for jeg kan simpelthen ikke huske hvor jeg fandt det på nettet i sin
tid.

evt. en rutine til at af "dekode" JPG eller GIF til BMP ville være lækkert


m.v.h.
lasse madsen



 
 
Bertel Brander (28-07-2004)
Kommentar
Fra : Bertel Brander


Dato : 28-07-04 19:06

Lasse Madsen wrote:
> Hej
>
> Jeg har på et tidspunkt set at nogen havde lavet et BMP billed med en
> komplet font
> (altså alle bokstaver/tal) og på en eller anden snedig måde lavede de en
> form for "grid" i det billed i C hvor de kunne lave noget ala
>
> lcd_putchar('a');
>
> og så var der en rutine der kunne gå ind "i billedet" og finde 'a' jeg kunne
> forestille mig at man havde et array med billedet i og hvis displayet er
> 320x240px ville arrayet vel være på f.eks. ( displayet's databåndbredde er
> 8bit )
>
> unsigned char font[9600];
>
> vidste man så på en eller anden måde at et 'A' lå i "position" 0,0 til 20,0
> i første linje og stopper på position 20,20
>

Man kunne lave:
char font[128][8];

Hvor 8 er antallet af linier der bruges til hvert tegn og
128 er antallet af tegn.

Man kunne så lave "fonten" med:
char font[128][8] =
{

{
....
},
....
{
0x08,
0x14,
0x22,
0x41,
0x7F,
0x41,
0x41,
0x41,
},
};

Det indikerede bogstav skulle gerne blive til et A.
Vær dog opmærksom på at nogle displays vil have
data lodret og andre vandret.

Er det til et embedded project? Hvor mange pixels vil
du have pr. tegn? Jeg mener at have et par fonte
i det format til at ligge.

>
> evt. en rutine til at af "dekode" JPG eller GIF til BMP ville være lækkert

Det er ret let at læse en .bmp-fil, bortset fra at der findes
mange typer bmp-filer. Se f.ex:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_1rw2.asp
jpeg billeder er lidt mere besværlige at læse.

Jeg har vist nogle stumper kode til at ligge som kan læse bmp-filer.

Hvis det er til windows kunne du blot læse hele bmp'en og bruge
BitBlt til at tegne de enkelte tegn.

/b

Lasse Madsen (29-07-2004)
Kommentar
Fra : Lasse Madsen


Dato : 29-07-04 09:23

Hej Bertel :)

> Man kunne lave:
> char font[128][8];.....

Rigtig genialt !

> Er det til et embedded project? Hvor mange pixels vil
> du have pr. tegn? Jeg mener at have et par fonte
> i det format til at ligge.

Ja jeg fik lige lov at låne et grafisk display til et lille hjemme fusk
projekt af min arbejdsgiver på 320x240 px så tænke jeg at jeg ville prøve
nogle ting af men den onboard font i SED1335 controlleren er _meget_
lille...

> Det er ret let at læse en .bmp-fil...

Ja jeg har selv lige lavet en BMP "plotter" der kan udskrive billeder i
displayet
men min processor har kun 128KB flash så BMP billeder fylder meget i den
derfor ville JPG eller et anden format være smartere.

Hvis du har nogle spændne fonte du kunne tænke dig at dele vil jeg da meget
gerne have en kopi og hvis du ved hvor man kan hente nogen vil det også være
perfekt :)

Tusinde tak på forhånd
Lasse Madsen



Bertel Brander (29-07-2004)
Kommentar
Fra : Bertel Brander


Dato : 29-07-04 22:04

Lasse Madsen wrote:
> Ja jeg har selv lige lavet en BMP "plotter" der kan udskrive billeder i
> displayet
> men min processor har kun 128KB flash så BMP billeder fylder meget i den
> derfor ville JPG eller et anden format være smartere.

Som du kan se på linket fra før kan man gemme bmp billeder med 1 bit pr.
pixel, så fylder de ikke ret meget.

>
> Hvis du har nogle spændne fonte du kunne tænke dig at dele vil jeg da meget
> gerne have en kopi og hvis du ved hvor man kan hente nogen vil det også være
> perfekt :)
>

Jeg kan desværre ikke finde nogen fonte på min HD som jeg kan give
videre, jeg har dog ikke søgt på google.

Du kunne lave et bmp billede i paint med alle tegn og gemme det
på disken, og så lave et lille PC program der læser bmp'en
og gemmer den som et C array. Har du bestemt dig for hvor
mange pixels, højde og bredde, du vil have pr. tegn? Og skal
data tegnes lodret eller vandret?

Paint kan godt gemme som monokrom bmp. Det er lettest hvis du
bruger en "fixed width" font som courier eller tilsvarende.

/b

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste