AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein pf8Bit seltsames aussehen der Palette
Thema durchsuchen
Ansicht
Themen-Optionen

pf8Bit seltsames aussehen der Palette

Ein Thema von EWeiss · begonnen am 10. Apr 2016 · letzter Beitrag vom 18. Apr 2016
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
EWeiss
(Gast)

n/a Beiträge
 
#1

pf8Bit seltsames aussehen der Palette

  Alt 10. Apr 2016, 16:56
Ich versuche verschiedene Paletten für das Spectrogram zu definieren.

Dazu habe ich die weite verändert.
Die Initialisierung des Bitmap sieht wie folgt aus.

Delphi-Quellcode:
procedure TForm1.InitBitmap;
begin
  PalOrder := PAL_HOT;
  PalNeg := False;
  PalRGB := PAL_RGB;

  BuffBMP := TBitmap.Create;
  BuffBMP.Width := (StreamLength div 512 div 2) div Info.chans;
  BuffBMP.Height := 160;
  BuffBMP.HandleType := bmDIB;
  BuffBMP.PixelFormat := pf8Bit;

  ChangePalette(PalOrder, BuffBMP.Width, BuffBMP.Height, PaletteFile);

  BuffBMP.Canvas.Brush.Color := PaletteIndex(0);
  BuffBMP.Canvas.FillRect(BuffBMP.Canvas.ClipRect);

end;
Das habe ich von
(StreamLength div 512 div 4) //pf24Bit

nach

(StreamLength div 512 div 2) //pf8Bit


geändert
Mein Problem die Linien sind irgendwie gestretcht (bzw.. scheint da mit Scanline was nicht zu stimmen.)
Zudem wird das Spectrogram nun revers gezeichnet.
Es fängt von hinten an zu zeichnen.

was kann ich da machen?
Habe mal die unterschiede als Anhang addiert.

gruss

Geändert von EWeiss (11. Jul 2019 um 16:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: pf8Bit selsames aussehen der Palette

  Alt 10. Apr 2016, 17:22
(StreamLength div 512 div 4) //pf24Bit
Wie genau kommt dieser Wert denn zustande? Das hatte ich mich schon im anderen Thread gefragt, weil ich darin kein logisches Muster erkennen konnte.

24-Bit sind ja bekanntlich 3 Bytes und nicht 4. Ebenfalls ist 8-Bit ja nur 1 Byte. Und unabhängig davon macht das Verhältnis von 24-Bit = 4 und 8-Bit = 2 keinen Sinn für mich. Woher die 512 kommt, sehe ich grade auch nicht, aber das mag daran liegen, dass ich mich mit der BASS Library und Audio-Formaten generell nicht wirklich auskenne.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: pf8Bit selsames aussehen der Palette

  Alt 10. Apr 2016, 17:39
Zitat:
Wie genau kommt dieser Wert denn zustande? Das hatte ich mich schon im anderen Thread gefragt, weil ich darin kein logisches Muster erkennen konnte.
Ist eine Standard variable vom (Bass Forum) muss mich da jetzt auch nochmal schlau machen.

Zitat:
Und unabhängig davon macht das Verhältnis von 24-Bit = 4 und 8-Bit = 2 keinen Sinn für mich.
So gesehen muss ich dir recht geben..

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: pf8Bit selsames aussehen der Palette

  Alt 10. Apr 2016, 17:44
Zitat:
Wie genau kommt dieser Wert denn zustande? Das hatte ich mich schon im anderen Thread gefragt, weil ich darin kein logisches Muster erkennen konnte.
Ist eine Standard variable vom (Bass Forum) muss mich da jetzt auch nochmal schlau machen.
Kannst ja mal verlinken, falls du den Thread wiederfindest. Würde ich mir rein interessehalber auch gerne mal durchlesen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: pf8Bit selsames aussehen der Palette

  Alt 10. Apr 2016, 17:51
Zitat:
Wie genau kommt dieser Wert denn zustande? Das hatte ich mich schon im anderen Thread gefragt, weil ich darin kein logisches Muster erkennen konnte.
Ist eine Standard variable vom (Bass Forum) muss mich da jetzt auch nochmal schlau machen.
Kannst ja mal verlinken, falls du den Thread wiederfindest. Würde ich mir rein interessehalber auch gerne mal durchlesen.
In irgend welchen Code Samples..
Das Problem dabei ist das meistens dann wenn es darauf ankommt keine Kommentare addiert werden.
Bei nicht würdigen Funktionen wird kommentiert und bei würdigen weniger.

Aber ich kenne jemand der sich 100% mit der Bass Lib auskennt hab den mal angeschrieben.

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: pf8Bit selsames aussehen der Palette

  Alt 10. Apr 2016, 19:19
Also 4 steht für die sample länge FLOAT.
Delphi Single = 4 Byte
Ein Sample hat immer eine länge von 4 Bytes wenn das Flag BASS_SAMPLE_FLOAT verwendet wird.
Anschließend noch mal durch 2 also für jeden Kanal 512 enthält 256 samples für den rechten und 256 samples für den linken Kanal.


Das ist dann also nicht mein Problem muss ich so belassen wie es ist.
Die 4 Bytes haben also nichts mit dem PixelFormat zu tun.

Hmm vielleicht funktioniert das auf diese weise auch nicht, habe keine Palette für 24Bit.
Und wenn ich über HSLtoRGB die Farben hole verändert das die 8Bit Palette.

gruss

Geändert von EWeiss (10. Apr 2016 um 21:18 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 08:15
Wird eine vorgefertigte Palette für ein Bitmap bei ScanLine nicht berücksichtigt?
Wenn doch warum sind dann hier alle Farbwerte "0" ?

Delphi-Quellcode:
  if bScanLines then
  begin
    SetLength(ScanLines, Bitmap.Height);
    for i := 0 to Length(ScanLines) - 1 do
      ScanLines[i] := Bitmap.Scanline[i];
  end;
gruss
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#8

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 08:57
Wie verwendest du Scanline hier? Insbesondere der Typ des Pointer wäre hier interessant.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 09:04
Wie verwendest du Scanline hier? Insbesondere der Typ des Pointer wäre hier interessant.
Genau so wie im original Sample nur das ich für das Bitmap vorher eine Palette in pf8Bit erstelle.

gruss
  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
 
#10

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 09:11
Genau so wie im original Sample nur das ich für das Bitmap vorher eine Palette in pf8Bit erstelle.
Hab jetzt nicht alle beide Threads komplett durchgelesen. Kannst du bitte grad sagen welcher Typ es ist?
Was Medium und ich schätzen ist, dass du einen Pointertyp benutzt der größer als 1 Byte ist und du somit Pixel überspringst und dadurch seltsame Ergebnisse bekommst.
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
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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:18 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