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 4 von 4   « Erste     234   
EWeiss
(Gast)

n/a Beiträge
 
#31

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 17:35
Mit dem umgedrehten Bitmap hab ich jetzt behoben.
Durch das Move jeder einzelnen Zeile dauert das aber nun ewig
Kannst du die aktuelle Version des Projekts nochmal anhängen?
Ja gerne doch denn ich bekomme das nicht hin..
Kann machen was ich will die Paletten funktionieren einfach nicht!

So sollte Scope aussehen (Realtime kein Problem) und schnell genug.
Aber als Komplettansicht schlägt das fehl.

http://home.arcor.de/weiss.em/Spectr...e_12_04_16.rar

gruss

Geändert von EWeiss (11. Jul 2019 um 15:44 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#32

AW: pf8Bit seltsames aussehen der Palette

  Alt 17. Apr 2016, 21:14
Ich versuche immer noch den kram zu beschleunigen.

Delphi-Quellcode:
    for i := 0 to BuffBMP.Height - 1 do
    begin
      Value := round(Sqrt(Sqrt(Buffer[i + 1]) * 4 * BuffBMP.Width));

      if bScanLines then
      begin
        QueryPerformanceCounter(timeDraw0);

// X := BuffBMP.ScanLine[BuffBMP.Height - i - 1];
// Move(X[OffsetX], X[0], (BuffBMP.Width - OffsetX));

        for m := 0 to pred(OffsetX) do
          X[BuffBMP.Width - OffsetX + m] := Value;

        QueryPerformanceCounter(timeDraw1);
        timeDraw := timeDraw + (timeDraw1 - timeDraw0);
      end
      else
      begin
        QueryPerformanceCounter(timeDraw0);

        BuffBMP.Canvas.Pixels[ColumnCounter, BuffBMP.Height - i] := Value; //RGB(R, G, B);
        QueryPerformanceCounter(timeDraw1);
        timeDraw := timeDraw + (timeDraw1-timeDraw0);
      end;

    end;
Ich habe jetzt den Auskommentierten Teil in eine eigene Schleife gebunden.
Um beim zuweisen der Farben das ganze zu beschleunigen.

Delphi-Quellcode:
  for i := 0 to BuffBMP.Height - 1 do
  begin
    X := BuffBMP.ScanLine[BuffBMP.Height - i - 1];
    Move(X[OffsetX], X[0], (BuffBMP.Width - OffsetX));
  end;
Das geht relativ schnell, das Problem ist nur das bei der Übergabe der Value das Bitmap nicht gefüllt wird.
Eigentlich müsste es doch egal sein ob ich den Pointer vorher verschiebe anstatt in der Schleife zum ermitteln der Farben.

Wo ist mein Denkfehler?
In X müssten doch die richtigen Pointer liegen.
X: PByteArray;

gruss

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

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#33

AW: pf8Bit seltsames aussehen der Palette

  Alt 18. Apr 2016, 00:01
Da sind dir irgendwo auf dem Weg die gepufferten Scanlines abhanden gekommen, und statt dessen in das PByteArray verwurschtelt, dass ein ganz anderes Ziel verfolgt.
Ich hätte da jetzt eher sowas in der Art gesehen:
Delphi-Quellcode:
var
  x: array of PByteArray;
begin
...
    SetLength(x, BuffBMP.Height);
    for i := 0 to BuffBMP.Height - 1 do
      x[i] := BuffBMP.Scanline[BuffBMP.Height-i-1];

    for i := 0 to BuffBMP.Height - 1 do
    begin
      Value := round(Sqrt(Sqrt(Buffer[i + 1]) * 4 * BuffBMP.Width));
      if bScanLines then
      begin
        QueryPerformanceCounter(timeDraw0);
        X[i][ColumnCounter] := Value;
        QueryPerformanceCounter(timeDraw1);
        timeDraw := timeDraw + (timeDraw1 - timeDraw0);
      end
      else
      begin
        QueryPerformanceCounter(timeDraw0);
        BuffBMP.Canvas.Pixels[ColumnCounter, BuffBMP.Height - i] := Value; //RGB(R, G, B);
        QueryPerformanceCounter(timeDraw1);
        timeDraw := timeDraw + (timeDraw1-timeDraw0);
      end;
    end;
Woher das xOffset und die Schleife mit "m" herkommen, ist mir ehrlich gesagt etwas schleierhaft gerade. Meiner Meinung nach braucht es die nicht, oder der Codeschnipsel war nicht ausreichend um die Notwendigkeit bzw. den Nutzen zu demonstrieren.
"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
 
#34

AW: pf8Bit seltsames aussehen der Palette

  Alt 18. Apr 2016, 00:26
Zitat:
Woher das xOffset und die Schleife mit "m" herkommen, ist mir ehrlich gesagt etwas schleierhaft gerade.
Ich habe versucht meine frühere Routine (Realzeit) hier zu verwenden.
Der XOffset diente dazu Das Bitmap von verschiedenen Seiten zu zeichnen.

Zitat:
Da sind dir irgendwo auf dem Weg die gepufferten Scanlines abhanden gekommen, und statt dessen in das PByteArray verwurschtelt, dass ein ganz anderes Ziel verfolgt.
Ich hätte da jetzt eher sowas in der Art gesehen:
Vollkommen richtig und Danke dafür.
Durch das vorherige füllen des PByteArray ist die Geschwindigkeit nun genauso wie gewünscht.
Palette stimmt auch. War aber ein anderes Problem)


gruss

Geändert von EWeiss (18. Apr 2016 um 13:25 Uhr)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#35

AW: pf8Bit seltsames aussehen der Palette

  Alt 18. Apr 2016, 08:14
BuffBMP.Canvas.Pixels[ColumnCounter, BuffBMP.Height - 1 - i] := Value; //RGB(R, G, B);
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#36

AW: pf8Bit seltsames aussehen der Palette

  Alt 18. Apr 2016, 12:48
BuffBMP.Canvas.Pixels[ColumnCounter, BuffBMP.Height - 1 - i] := Value; //RGB(R, G, B);
Danke ist mir auch gestern noch aufgefallen..
Mein Fehler!

gruss

Geändert von EWeiss (18. Apr 2016 um 13:23 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 01:58 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