![]() |
pf8Bit seltsames aussehen der Palette
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:
Das habe ich von
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;
Delphi-Quellcode:
(StreamLength div 512 div 4) //pf24Bit
nach
Delphi-Quellcode:
(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 |
AW: pf8Bit selsames aussehen der Palette
Zitat:
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. |
AW: pf8Bit selsames aussehen der Palette
Zitat:
Zitat:
gruss |
AW: pf8Bit selsames aussehen der Palette
Zitat:
|
AW: pf8Bit selsames aussehen der Palette
Zitat:
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 |
AW: pf8Bit selsames aussehen der Palette
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 |
AW: pf8Bit seltsames aussehen der Palette
Wird eine vorgefertigte Palette für ein Bitmap bei ScanLine nicht berücksichtigt?
Wenn doch warum sind dann hier alle Farbwerte "0" ?
Delphi-Quellcode:
gruss
if bScanLines then
begin SetLength(ScanLines, Bitmap.Height); for i := 0 to Length(ScanLines) - 1 do ScanLines[i] := Bitmap.Scanline[i]; end; |
AW: pf8Bit seltsames aussehen der Palette
Wie verwendest du Scanline hier? Insbesondere der Typ des Pointer wäre hier interessant.
|
AW: pf8Bit seltsames aussehen der Palette
Zitat:
gruss |
AW: pf8Bit seltsames aussehen der Palette
Zitat:
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 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