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 3 von 4     123 4      
Benutzerbild von Neutral General
Neutral General

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

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 11:24
Nagut dann eben 8-Bit. Sollte aber vom Prinzip genauso funktionieren.
Sorry nein weil es nicht verdreht ist und eine Rotation von 90 Grad in dem Fall nichts bringt.
Es ist umgekehrt.

Zitat:
Okay war bei Scanline nicht das Problem dass du in erster Linie vertikal zeichnen musst?
Ich zeichne vertikal.

gruss
Du verstehst mich scheinbar nicht.
Die Tatsache DASS du vertikal zeichnest bzw. zeichnen musst macht es ja so langsam weil du mit Scanline ja nur zeilenweise Zeichnen kannst.
Wenn du jetzt aber dein Bitmap um 90° drehst kannst du horizontal malen und Scanline effektiv benutzen. (siehe Anhang)
Damit es dann auf dem Bildschirm wieder richtig rum ist musst du das Bitmap da dann (z.B.) per PlgBlt zurückdrehen.
Miniaturansicht angehängter Grafiken
was_du_zeichnest.png  
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
EWeiss
(Gast)

n/a Beiträge
 
#22

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 11:36
Zitat:
Du verstehst mich scheinbar nicht.
Kann sein..
In dem vorherigen Beispiel mache ich es auch nicht anders (falsch oder richtig das wäre dann die frage)
bin mir jetzt nicht so sicher weil hier mit Scanline die RGB Farben übergeben werden. Also eine ganz andere Sache.

Hier ist nochmal mein Code.. Variablen anders vergeben zum besseren Verständnis.
Ok zeichne Horizontal..

Delphi-Quellcode:
x: PByteArray;
Value: Byte;
....

Delphi-Quellcode:
      Value := round(Sqrt(Sqrt(Buffer[i + 1]) * 3 * BuffBMP.Width));

      if bScanLines then
      begin
        QueryPerformanceCounter(timeDraw0);
        k := BuffBMP.Height - i - 1;
        x := BuffBMP.ScanLine[k];

        Move(x[OffsetX], x[0], (BuffBMP.Width - OffsetX));

        x[BuffBMP.Width - OffsetX] := Value;

        QueryPerformanceCounter(timeDraw1);
        timeDraw := timeDraw + (timeDraw1-timeDraw0);
      end
Das Problem das ich habe ist das mein Bitmap dann umgekehrt nicht verdreht ist.
Also das was eigentlich vorne sein soll ist hinten..
Da nutzt auch ein drehen um 90 grad nichts.

Deine Vermutung das ich nicht vertikal zeichne mag das Problem mit meiner Performance sein.
Dem will ich nicht widersprechen.

EDIT:
Ok denke verstehe was du meinst.
Ich soll das leere Bitmap vorher drehen dann mit ScanLine Horizontal zeichen
und anschließend wieder zurück drehen.

Das kann ich aber nicht machen weil beim Fortschritt direkt gezeichnet wird. (sichtbar)

gruss

Geändert von EWeiss (11. Apr 2016 um 12:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#23

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 13:10
Man kann alle Zeilenanfänge auch vorher einmal per Scanline besorgen und zwischenspeichern.
Mit einem eindimensionalen Array, hätte man dann eine zweidimensionale Matrix (ZeilenArray-Offset + Spalten-Offset).

Alle Zeilen liegen im Speicher hintereinander, allerdings oft gerne von unten nach oben
und im Speicher ausgerichtet (Alignment).
Heißt, daß man im Grunde nur einen Anfang bräuchte und die Pixelposition ausgerechnet werden könnte.


Oder, falls es hier geht und praktikabel ist, man dreht seine Zeichenfunktion, damit sie eben nicht Spalten, sondern Zeilenweise arbeitet.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (11. Apr 2016 um 13:13 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#24

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 13:23
Zitat:
Oder, falls es hier geht und praktikabel ist, man dreht seine Zeichenfunktion, damit sie eben nicht Spalten, sondern Zeilenweise arbeitet.
Ja wie von Michael vorgeschlagen.
Ist ohne ein zusätzliches Bitmap nicht ausführbar und zudem möchte ich ja den Fortschritt der Analysierung gleichzeitig visualisieren.

Zitat:
Man kann alle Zeilenanfänge auch vorher einmal per Scanline besorgen und zwischenspeichern.
Mit einem eindimensionalen Array, hätte man dann eine zweidimensionale Matrix (ZeilenArray-Offset + Spalten-Offset).
Da weiß ich nicht wie das gehen soll.
Die x Position bekomme ich ja erst durch die Value.
Value := round(Sqrt(Sqrt(Buffer[i + 1]) * 3 * BuffBMP.Width));

Danke.

gruss

Geändert von EWeiss (11. Apr 2016 um 13:35 Uhr)
  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
 
#25

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 13:28
Zitat:
Oder, falls es hier geht und praktikabel ist, man dreht seine Zeichenfunktion, damit sie eben nicht Spalten, sondern Zeilenweise arbeitet.
Ja wie von Michael vorgeschlagen.
Ist ohne ein zusätzliches Bitmap nicht ausführbar und zudem möchte ich ja den Fortschritt der Analysierung gleichzeitig visualisieren.
himitsu meint was anderes als ich. Bei mir wird das Bitmap gedreht und pro Zeile 1 der vertikalen Linie gezeichnet.
Himitsu schlägt vor das Bitmap so zu lassen wie es ist, aber eben nicht Linie für Linie vertikal zu zeichnen sondern zeilenweise von oben nach unten jeweils 1 Pixel jeder Linie zu zeichnen.
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
EWeiss
(Gast)

n/a Beiträge
 
#26

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 13:31
Zitat:
Himitsu schlägt vor das Bitmap so zu lassen wie es ist, aber eben nicht Linie für Linie vertikal zu zeichnen sondern zeilenweise von oben nach unten jeweils 1 Pixel jeder Linie zu zeichnen.
Ach so hab es falsch verstanden.
Destotrotz brauche ich die Aktuelle (x) in dem Fall dann die Y Position welche ich erst durch die Value erhalte.

Oder?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#27

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 13:36
Nee nee , er hat die Zeichenfläche gedreht und nach dem Zeichnen halt nochmal das fertige Bild.

Man kann aber manchmal auch das Zeichnen drehen und nicht das Blatt.

Es ginge auch mitten drinnen, das Drehen MSDN-Library durchsuchenSetWorldTransform,
allerdings nicht hier, da hier ja an Allem vorbei direkt in den Speicher gegangen wird.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#28

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 13:45
Hatte eigentlich gedacht es wäre schwieriger die RGB Werte zu analysieren.
So kann man sich irren.

In Realzeit wo nur eine Zeile ausgelesen und dann direkt gezeichnet wird ist das kein Problem
aber alles in einem Zug geht ganz schön auf die Geschwindigkeit beim einlesen.
Na ja wer hatte das gedacht.

Bin wohl zu blöd dafür.
Sollte mich erst noch etwas mehr mit der eigentlichen Materie auseinandersetzen (ScanLIne)

EDIT:
Mit dem umgedrehten Bitmap hab ich jetzt behoben.
Durch das Move jeder einzelnen Zeile dauert das aber nun ewig

gruss

Geändert von EWeiss (11. Apr 2016 um 16:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 18:24
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?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#30

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 18:34
Also intern lässt du dein Bild einfach im Hochformat.
Da kannst du auch ganz einfach verschieben, da dort ja komplette Scanlines kopiert/verschoben werden können.

Beim vertikal Scrollen wird in jeder Scanline der Inhalt um ein/paar Pixel nach links kopiert.

Und dann nur für die Ausgabe entweder per PlgBlt das Bild drehen und anzeigen,
oder über SetWorldTransform die Anzeige (das DC/TCanvas) drehen und dein Bild da im Hochformat rein malen.

Und "Anzeigen" auch immer nur den sichtbaren Bereich des internen Bildes.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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