Autor Beitrag
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: So 23.01.05 21:02 
Sers Leute,

user defined image

ich wollte heute mal ein kleines Projekt vorstellen, dass ich gestern Abend aus Interesse mal angefangen habe. Es handelt sich um eine Unit, die ein zweifarbiges Bild (ergo Schwarz & Weiß) Bitweise speichert. Es wird also für ein Pixel nur ein Bit anstatt einem Byte verbraucht. Ein 256 * 256 Pixel großes Bild hat damit um die 8KB. BMP braucht dafür 192KB (Okay, kein Vergleich), JPG um die 35KB und GIF etwa 10KB :) Okay, Das BiPi-Format kann dafür keiner Lesen :lupe:
Als kleine Besonderheit kann man mit dem Programm zwar nicht malen, dafür aber die Bildinformationen mit einer mathematischen Formel erstellen (I mod *), wo oft sehr interessante Sachen rauskommen (Siehe Screenshot).
Naja, Egal. Hier sind auf jeden Fall die Units, die ausführbare Datei, ein Screenshot und eine Demo-Datei.

Würde mich über Feedback freuen!

Und Danke an Muetze1 für seine Hilfe!

EXE | Source | Demo-Datei

Gruß,Moritz
I.MacLeod
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 109



BeitragVerfasst: So 23.01.05 21:53 
Hmm... tut mir Leid, aber wie wärs mit

ausblenden Delphi-Quelltext
1:
Bitmap.PixelFormat := pf1bit					

?

Edit:

Joa, ist teilweise wirklich ganz nett ;-) Was mir aufgefallen ist:

Du solltest die Größe von "Image" in den Settern von Width / Height automatisch anpassen lassen. (Am besten auch noch die Daten anders ablegen [z.B. 2D-Array], sonst gibts Murks beim Größenverändern)

ausblenden Delphi-Quelltext
1:
SetLength(gBiPi.Image, 8189);					


Das müsste IMHO 8192 sein.
Moritz M. Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: So 23.01.05 22:28 
Jaaa...okay *g* Aber BiPi ist viel Cooler ... :mrgreen:

Intern werden da wohl eh noch ein paar Sachen passieren, ein bisschen was stimmt da noch nicht (Vorallem bei Draw()), aber Danke für die Hinweise!