AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi pixelweises Zeichnen von PaintBox beschleunigen
Thema durchsuchen
Ansicht
Themen-Optionen

pixelweises Zeichnen von PaintBox beschleunigen

Ein Thema von mikro-ViiV · begonnen am 9. Jul 2008 · letzter Beitrag vom 11. Jul 2008
Antwort Antwort
Seite 2 von 2     12   
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#11

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 9. Jul 2008, 22:45
Zitat:
Vielleicht eine dumme Frage, aber wenn deine Werte zwischen 0 und 255 liegen, dann sind sie nur ein Byte groß, hast du damitnicht schon Grauwerte
nein so funktioniert das nicht.
entweder du hast grauwerte - wenn es aber farbwerte sind, dann handelt es sich um eine farbpalette.
jede nummer ist also eine farbe.
lg
Arnulf
  Mit Zitat antworten Zitat
mikro-ViiV

Registriert seit: 7. Jul 2008
15 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 10. Jul 2008, 16:35
Nochmals riesen DANK an euch.

Das mit dem virtuellen Bitmap werde ich morgen mal probieren, da ich heute leider keine Zeit mehr dazu habe.


Die Grauwerte erzeuge ich einfach, indem ich die drei Grundfarben alle in selben Verhältnis mische.
Also: Grauwert:= Wert + Wert*256 + Wert*256*256

Dann kann ich die Pixel so beschreiben:
canvas.Pixels[x,y]:=Grauwert

oder wie turboPascal es geschrieben hat mit:
canvas.Pixels[x, y] := RGB(wert, wert, wert);
(Danke für den Tipp, ich wusste das bis jetzt noch gar nicht, dass es auch so geht.)
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#13

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 10. Jul 2008, 17:34
Ich bleibe dabei, die Bremse ist nicht das Zeichnen sondern die RS232-Schnittstelle...
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 10. Jul 2008, 18:21
Stichwort: Scanline
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#15

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 10. Jul 2008, 18:27
Zitat von OldGrumpy:
Ich bleibe dabei, die Bremse ist nicht das Zeichnen sondern die RS232-Schnittstelle...
Wir rechnen ein bisschen
Wenn 8 Bit Nutzdaten auf die Reise gehen sind es 10 Bit auf der Leitung, da ja Startbit und mindestens ein Stopbit hinzukommen.
128*128*10 = 163840 Bits auf der Leitung

Bei 115.200 Baud werden 1,42 Sekunden benötigt.
Die Myth Busters würden jetzt sagen "bestätigt".
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#16

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 10. Jul 2008, 18:34
shmia, schau mal unauffällig auf Beitrag #8
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mikro-ViiV

Registriert seit: 7. Jul 2008
15 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 11. Jul 2008, 11:00
So, das Memo habe ich jetzt rausgeschmissen und anstelle dessen ein zweidimensionales Array verwendet.
Es geht nun auch schon etwas schneller, das Zeichnen, ist aber immer noch zu langsam. Als nächstes werde ich es wohl mal mit nem virtuellen Canvas nochmal probieren.


Das die Übertragung der Bilddaten via RS232 recht lange dauert ist mir bekannt. Ich werde deshalb eventuell auf die parallele Schnittstelle umsteigen. Da muss ich dann zwar jedes Byte in Tetraden zerlegen und jedes Halbbyte Einzeln senden, aber ich denke, dass sollte immer noch schneller sein als RS232, wo ja im Prinzip jedes Bit einzeln übertragen wird.

Ich habe aber leider bisher noch keine klare Angabe gefunden, mit was für Geschwindigkeiten ich bei der parallelen Schnittstelle arbeiten kann. Kennt sich damit vielleicht jemand aus?


Zu meiner aktuellen Übertragungsgeschwindigkeit:
Momentan arbeite ich ja noch mit RS232 und 38400 Baud. Mehr geht irgendwie nicht.
Das scheint irgendwie an Delphi zu liegen. Ich verwende zu Auslesen der seriellen Schnittstelle TComPort. Wenn ich mehr als 38400 Baud vewende kommt delphi mit dem Auslesen aus dem Puffer der seriellen Schnittstelle nicht mehr hinterher und es Fehlen am Ende Werte.
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#18

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 11. Jul 2008, 11:54
Benutzt Du keinen Hardware-Handshake für die RS232? Und wieso musst Du die Bytes für den Parallelport unbedingt in Nibbles zerlegen? Jeder Parallelport der letzten zehn Jahre kann zumindest EPP und damit volle Bidirektionalität. Also einfach die Datenleitungen als Eingänge konfigurieren und auslesen. Handshake via Strobe geht ja trotzdem.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
mikro-ViiV

Registriert seit: 7. Jul 2008
15 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 11. Jul 2008, 13:16
Zitat:
Stichwort: Scanline
Das ist ja echt klasse. Und super einfach.
Jetzt ist das zeichnen wirklich wahnsinnig schnell geworden.
Danke für den Tipp.


Zitat:
Benutzt Du keinen Hardware-Handshake für die RS232?
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#20

Re: pixelweises Zeichnen von PaintBox beschleunigen

  Alt 11. Jul 2008, 14:01
Keinen Handshake beim RS232 zu verwenden scheint echt ne Krankheit unter µC-Entwicklern zu sein. Lieber die zwei Pins sparen und stattdessen noch zwei mehr I/O-Pins haben Mein Kollege aus der Atmel-Ecke hat das auch immer *sigh*
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:17 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