AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Array in einer Bitmap speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Array in einer Bitmap speichern?

Ein Thema von Nikolas · begonnen am 24. Aug 2004 · letzter Beitrag vom 24. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 12:04
Ich schreib grad an einem Projekt in dem ich ein größeres Array fülle (500*600), dessen Werte später in einem Bild dargestellt werden (Integer->RGB). Jetzt will ich das Ganze speichern, also entweder gebe ich das Array weiter oder das Bild. Jetzt will ich wissen ob es möglich wäre, die Bitmap per Canvas.SavetoFile zu speichern und nachher aus den Farbwerten das Array wiederherzustellen. Geht das genau, oder gibt's da Fehler durch eine mögliche Kompression?
Vorteil am Bildweitergeben ist natürlich, dass man sich die Daten auch einfach in Paint o.ä. anschauen kann.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
roderich
(Gast)

n/a Beiträge
 
#2

Re: Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 12:21
hallo Toxman,

Probleme mit Kompression sollten nicht auftreten, da Bitmaps (.bmp) in aller Regel in voller Größe gespeichert werden.
D.h. selbst ein einfarbiges Bitmap hat diese Größe in Byte:

Header_Größe (mögliche Header-Definitionen findet man sicher per Google)
+
Breite * Höhe * BitsPerPixel / 8

Wenn Du 32 Bits pro Pixel festlegst, kannst Du 32 bit integer-Zahlen in die Pixels-Eigenschaft schieben.

Soweit ich weiß gibt's aber kein Canvas.SaveTofile, aber ein Bitmap.SaveToFile.

Gruß
Roderich
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 12:25
Danke, ich glaub, dass wird dann doch etwas groß. Ich werd mir da ne Klasse drum rum schreiben und dann einfach eine KlassenVariable per savetofile in eine typisierte Datei schreiben.

Trotzdem Danke
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
roderich
(Gast)

n/a Beiträge
 
#4

Re: Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 12:27
woran ich aber jetzt net gedacht hatte:
bin mir auch nicht sicher, ob ein Bitmap-Objekt nicht beim Lesen/Schreiben seine Pixels-Einträge (die ja vom Typ TColor sind) in irgendeiner Form manipuliert, z.B. das höchstwertige Byte auf $00, $01, oder $02 setzt.

mußte halt probieren

Roderich
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#5

Re: Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 12:29
Servus,

TCanvas kann meines Wissens nach nicht "direkt" gespeichert werden, TBitmap allerdings schon (Delphi-Referenz durchsuchenSaveToStream). Kompression o.ä. legste ja selber beim Speichern fest, also dürfte da kein Problem auftreten. Schau Dir dafür auch ma MSDN-Library durchsuchenbitmapinfoheader und wotsit an.

PS: Ich persönlich würd dem Anwender vermutlich die Wahl lassen: Speichern (Array) oder Export als Bitmap (dann könnteste u.U. auch mit Kompression arbeiten oder evtl. anderes Format wählen )

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von Boombuler
Boombuler

Registriert seit: 14. Mär 2003
Ort: Osnabrück
244 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 12:51
Solltest du es in ein Bitmap speichern und nachher kompremieren (zB JPEG) dann solltest du drauf achten das du dir ein verlustfreies Format aussuchst... (also nich jpeg) zB Tiff...
nur so als Tipp....

Greetz
Boombuler
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 12:58
Es gibt die Möglichkeit einfach Canvas.Bitmpat.Savetofile zu nehmen und dann einfach zu speichern.
Ich mach das doch eher über eine Klasse, die dann recht simpel geschrieben und gelesen werden kann.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#8

Re: Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 13:00
Ich denke, selbst bei einem verlustfreien Format sind die "Überlebenschancen" für das höchstwertige Byte sehr gering.
Selbst das original TBitmap arbeitet meines Wissens maximal mit 24 bit.
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#9

Re: Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 13:03
TCanvas hat eine Eigenschaft Bitmap ?
Eher andersrum, oda?
Delphi-Quellcode:
//Bissl Pseudocode :)
bmp := TBitmap.Create...
bmp.Canvas.Assign(derAndereCanvas);
bmp.SaveToStream
...
Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Array in einer Bitmap speichern?

  Alt 24. Aug 2004, 13:37
Also nu mal zum Mitschreiben.
Über Canvas oder Bitmap läuft das gar nicht

Einfach so in ne Datei geht über Image1.picture.savetofile('Bild.bmp'); Ganz einfach, ohne zusätzliche Sachen
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz