AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Farbe aus einem Pixel bekommen.

Farbe aus einem Pixel bekommen.

Ein Thema von torro · begonnen am 23. Mär 2011 · letzter Beitrag vom 24. Mär 2011
Antwort Antwort
shmia

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

AW: Farbe aus einem Pixel bekommen.

  Alt 23. Mär 2011, 11:06
...Dafür zeichne auf dem Canvas ...
Dann nimm doch einfach das Property Pixels[] deines Canvas-Objekts.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Farbe aus einem Pixel bekommen.

  Alt 23. Mär 2011, 11:18
Zitat:
Dafür zeichne auf dem Canvas
Doch nicht etwa das Canvas von einem TImage oder gar das der TForm?
- Ersteres ist total langsam (sowas macht man intern in einem TBitmap oder Dergleichen ... genannt Offscreen-Bitmap)
- und Letzeres ist nicht für "Berechnungen" geeignet, da es die Bilddaten nirgends speichert.

Und wozu die Arrays?
zwei TBitmap für die Würfel und dann die Pixel direkt verrechnen, wobei es sogar eine fertige Copy-Methode gibt, welche das verrechnet.
Bzw, brauchst du einfach nur via OR das eine Bild in das Andere reinkopieren, wenn das eine Bild nur Rot- und das Andere nur Grüntöne besitzt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Mär 2011 um 11:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#3

AW: Farbe aus einem Pixel bekommen.

  Alt 23. Mär 2011, 11:32
Und wenn du unbedingt nachträglich auf einzelne pixel zugreifen musts, nutze ScanLine und nicht PIxel, ScanLIne ist um einiges schneller.

MFG
Memnarch
  Mit Zitat antworten Zitat
shmia

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

AW: Farbe aus einem Pixel bekommen.

  Alt 23. Mär 2011, 12:47
Und wenn du unbedingt nachträglich auf einzelne pixel zugreifen musts, nutze ScanLine und nicht PIxel
Aber erst nachdem die Lösung mit Pixels[] funktioniert hat.
Anfänger sind mit Scanline häufig überfordert.
Ausserdem kann Scanline seine Performance nur dann voll ausspielen, wenn man das Bitmap in horizontaler Richtung abarbeitet.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#5

AW: Farbe aus einem Pixel bekommen.

  Alt 23. Mär 2011, 13:57
@shmia: ok geb ich recht, könnte überfordern.

Wenn torro oder sonst noch wer trotzdem interesse hat sich das mal anzugucken:

http://edn.embarcadero.com/article/29173

Fand ich ganz gut erklärt(ist aber auf ENGLISH)

MFG
Memnarch
  Mit Zitat antworten Zitat
torro

Registriert seit: 16. Sep 2010
37 Beiträge
 
#6

AW: Farbe aus einem Pixel bekommen.

  Alt 23. Mär 2011, 16:07
erstmal danke für die schnellen und vielen antworten.
hab es mit Pixels[] ausprobiert und es hat alls so funktioniert wie ich es brauche. vielen Dank

Geändert von torro (23. Mär 2011 um 16:08 Uhr) Grund: vergessenes wort
  Mit Zitat antworten Zitat
torro

Registriert seit: 16. Sep 2010
37 Beiträge
 
#7

AW: Farbe aus einem Pixel bekommen.

  Alt 23. Mär 2011, 17:47
hi, wie ihr schon erwartet habt ist das ganze extrem langsam..

Code:
procedure GetRGBlinks ();
VAR farbe : tcolor;
    r,g,b : byte;
    x, y: integer;
begin
  x:=190;
  y:=-40;
  for x := 235 to 425 DO
  begin
    for y:= -40 to 135 DO
    begin
      farbe := form1.Canvas.Pixels[x,y];
      b := farbe MOD 256;
      farbe := farbe DIV 256;
      g := farbe MOD 256;
      farbe := farbe DIV 256;
      r := farbe MOD 256;
      lWuerfel[x,y].b:=b;
      lWuerfel[x,y].g:=g;
      lWuerfel[x,y].r:=r;
    end;
  end;
end;

procedure GetRGBrechts
var..
begin
  .
  .
end;
kann man diesen code beschleunigen? Ihr seht ich muss die Prozedur sogar zweimal ausführen. das ganze auf ein image zeichnen is nur eine notlösung..

Geändert von torro (23. Mär 2011 um 17:48 Uhr) Grund: fehler
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:30 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