AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Binärbild einlesen

Ein Thema von alleinherrscher · begonnen am 4. Jan 2011 · letzter Beitrag vom 5. Jan 2011
Antwort Antwort
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Binärbild einlesen

  Alt 4. Jan 2011, 21:13
Geht weiter mit:

0001 0001 0001 0001

Big Endian? Swap?

//edit gerade mal gelesen, was Big Endian ist...aber müsste das nicht egal sein, bei 0000 0000 0000 0000 ?
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS

Geändert von alleinherrscher ( 4. Jan 2011 um 21:16 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.881 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Binärbild einlesen

  Alt 4. Jan 2011, 21:15
Ich vermutete, dass die Datei im Big Endian Format ist, Intel verwendet aber Littel Endian, so dass die Bytes vertauscht sind
http://de.wikipedia.org/wiki/Byte-Reihenfolge
Mit Swap() kann man diese Tauschen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Binärbild einlesen

  Alt 4. Jan 2011, 21:40
Nur ne kleine Anmerkung am Rande. Ich würde statt SmallInt vielleicht lieber den Datentyp "Word" benutzen. Vorzeichen brauchst du wohl eher nicht und die verwirren im Zweifelsfall nur.(bzw. könnte denke ich auch wirklich Probleme geben)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Binärbild einlesen

  Alt 5. Jan 2011, 00:17
Probier mal folgendes und sag bescheid, obs geklappt hat:

Delphi-Quellcode:
procedure ReadFile(filename:string);
var fs: TFileStream;
    bmp: TBitmap;
    p: PWord;
    x: Integer;
    y: Integer;
begin
  bmp := TBitmap.Create;
  try
    bmp.PixelFormat := pf16bit;
    bmp.Width := 550;
    Bmp.Height := 550;
    fs := TFileStream.Create( filename, fmOpenRead );
    try
      for y := 0 to bmp.Height - 1 do
      begin
        p := bmp.ScanLine[y];
        for x := 0 to bmp.Width - 1 do
        begin
          fs.Read( p^, 2 );
          inc( p );
        end;
      end;
      form1.Image1.Picture.Bitmap.Assign( bmp );
    finally
      fs.Free;
    end;
  finally
    bmp.Free;
  end;
end;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#5

AW: Binärbild einlesen

  Alt 5. Jan 2011, 00:51
//edit gerade mal gelesen, was Big Endian ist...aber müsste das nicht egal sein, bei 0000 0000 0000 0000 ?
Ja, bei diesem Wert ja, egal ob eine Vierergruppe 2 Byte oder 1 Nibble darstellen soll.

Was sind denn das für Höhendaten? Hättest du mal ein Histogramm von der Verteilung der Werte? Wobei mich auch noch interessieren würde, wie die Verteilung bei HiByte und LoByte aussieht ...

Immerhin kann es 16bit Ganzzahl, 16bit Festkommazahl oder 16bit Gleitkommazahl sein ... die Bedeutung der "Höhe" und ggf. die Längeneinheit könnte u.U. helfen das Rätsel zu lösen.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: Binärbild einlesen

  Alt 5. Jan 2011, 01:04
Du könntest sogar mal die Datei hier hochladen!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:50 Uhr.
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