Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Eigene Objekte -> PaintBox (https://www.delphipraxis.net/51530-eigene-objekte-paintbox.html)

tigerman33 28. Aug 2005 09:10

Re: Eigene Objekte -> PaintBox
 
Vektorbasiert heißt, du gibst nur noch Startpunkt und Richtung+Länge vor. Das spart vor allem bei einfachen Bildern, die hauptsächlich aus langen, geraden Linien bestehen bannig Speicherplatz.

Apropos Speicherplatz: Durch das Speichern in einer Textdatei verschenkst du im Vergleich zu z.B. einer bmp letztendlich mehr Platz, als du anschließend mit dem Komprimieren wieder herausholen kannst. Erst recht, wenn die Bitmap auch komprimiert ist. Momentan schreibst du ja trotz allem einfach Zahlen in die Datei, nur halt über den Umweg mit ASCII-Zeichen. Zum Vergleich: Ein Byte braucht normalerweise (Überraschung) 1 Byte Speicherplatz :shock: , in ASCII-Zeichen schon bis zu 3.

Khabarakh 28. Aug 2005 09:36

Re: Eigene Objekte -> PaintBox
 
Das ist wirklich gut :mrgreen: .
Code:
Speicherverbrauch für ein Pixel

Monochrombitmap:
1 Bit                                                                                   = 0,125 Byte
 
Textdatei:
(Koordinaten mit 1 bis 4 Stellen)
X-Koordinate + Doppelpunkt + Y-Koordinate + CRLF = 1-4 Byte + 1 Byte + 1-4 Byte + 2 Byte = 5-11 Byte
Da in der Textdatei nur die schwarzen Pixel gespeichert werden, teilen wir fairerweise noch durch 2, somit kommen wir auf ein Verhältnis von 1 : 20 oder 1 : 44 :zwinker: .

Wenn du ein Format mit hoher verlustfreier Komprimierung suchst, nimm PNG, oder speicher es wie gesagt vektorbasiert.

GuenterS 28. Aug 2005 10:15

Re: Eigene Objekte -> PaintBox
 
Zitat:

Zitat von tigerman33
Zum Vergleich: Ein Byte braucht normalerweise (Überraschung) 1 Byte Speicherplatz :shock: , in ASCII-Zeichen schon bis zu 3.

Nur mal so als Anmerkung, wenn Du das Ascii Zeichen "A" speichern möchtest hat das den Byte Wert 65, du speicherst damit auch nur 1 Byte und keine 3... Wie kommst du auf 3? Jedes Zeichen des Ascii Zeichensatzes besteht aus einem einzigen Byte. Wenn Du 3 speicherst dann hast Du auch 3 zugehörige Ascii Zeichen.

Khabarakh 28. Aug 2005 10:30

Re: Eigene Objekte -> PaintBox
 
Zitat:

[...] in ASCII-Zeichen [...]
Code:
"255" = "2" + "5" + "5" = 3 Byte
Gut, nicht sehr eindeutig :wink: .

GuenterS 28. Aug 2005 12:13

Re: Eigene Objekte -> PaintBox
 
Zitat:

Zitat von Khabarakh
Zitat:

[...] in ASCII-Zeichen [...]
Code:
"255" = "2" + "5" + "5" = 3 Byte
Gut, nicht sehr eindeutig :wink: .

Aja, ich würde dazu sagen, wenn man eine Zahl als String abspeichert, weil deine vorherige Aussage den Schluß zuließ, dass Du sagen wolltest ein Ascii Zeichen würde 3 Bytes brauchen.

tigerman33 28. Aug 2005 14:36

Re: Eigene Objekte -> PaintBox
 
Tschuldigung. War ein bisschen mies ausgedrückt. Ich gelobe Besserung! :angel2:

mimi 28. Aug 2005 14:56

Re: Eigene Objekte -> PaintBox
 
naja mir ging es eigentlich nicht um den speicherverbrauch sondern darum das die größe unbekannt bleiben sollte, weil sonst müsste ich ja vohrer die größe festlegen.

Aber evtl. habt ihr recht und ich sollte mein vorhaben mit einer BMP verzuchen. Dann könnte ich die objekte auch mit Paint zeichnen *G* und in das Programm einbinden.
aber ich wollte schon gerne wissen warum meine funktion nicht geht... hat da einer eine kleine idee ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz