AGB  ·  Datenschutz  ·  Impressum  







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

Farbe aus einem Pixel bekommen.

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

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

AW: Farbe aus einem Pixel bekommen.

  Alt 23. Mär 2011, 18:54
Zitat:
form1.Canvas

Ich hab es nicht umsonst gesagt.
minimiere mal die Form oder schiebe mal kurz eine andere Form über deine Form drüber ... Ergebnis: das Bild ist weg.
Ja, unter Windows 7 kann man Glück haben, daß der Desktop Window Manager eine Kopie der Daten vorhält, aber das ist nicht die Regel und diese Daten/Kopieen können auch schnell mal weg sein.

Zum Bearbeiten intern ein TBitmap und zum Anzeigen dann z.B. ein TImage.


Ja, mit Hier im Forum suchenScanline. Dazu musst du aber ein TBitmap nutzen.

Und du mußt aufpassen welches Format das Bitmap besitzt, da man direkt auf die internen Daten zugreift, welche sich ja je nach Delphi-Referenz durchsuchenPixelFormat unterscheidet.

PS:
Delphi-Quellcode:
var
  bild1, bild2: TBitmap;
  farbe1, farbe2 : record
    color : tcolor;
    b, g, r : byte;
  end;

bild1 := TBitmap.Create;
try
  bild2 := TBitmap.Create;
  try
    // bild1.canvas füllen
    // bild2.canvas füllen
    for x := ... do
      for y := ... do
      begin
        farbe1.color := bild1.Canvas.Pixel[x, y];
        farbe2.color := bild2.Canvas.Pixel[x, y];
        // farbe1.r, .b und .g mit farbe2 verrechnen
        // Ergebnis in farbe1
        bild1.Canvas.Pixel[x, y] := farbe1.color;
      end
    Image1.Canvas.CopyRect(Image1.ClientRect, bild1.Canvas, Image1.ClientRect);
  finally
    bild2.Free;
  end;
finally
  bild1.Free;
end;
und dann läßt es sich immernoch auf ScanLine umstellen.

Zitat:
for y:= -40 to 135 DO
das -40 ist wohl total falsch, denn ein Bitmap hat keine negativen Pixel (sei froh, daß bei dir keine Bereichsprüfung aktiv ist)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Mär 2011 um 18:59 Uhr)
  Mit Zitat antworten Zitat
torro

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

AW: Farbe aus einem Pixel bekommen.

  Alt 23. Mär 2011, 19:14

Zitat:
for y:= -40 to 135 DO
das -40 ist wohl total falsch, denn ein Bitmap hat keine negativen Pixel (sei froh, daß bei dir keine Bereichsprüfung aktiv ist)

Ne, ist es nicht. Wie gesagt erzeuge ich auf dem Canvas zwei Würfel. Die Würfel werden auf Basis von Vektoren errechnet und der aktuellen Blickwinkel entsprechend gezeichnet. Dazu habe ich u.a. das Koordinatensystem in die Mitte des Forms legen müssen. Deswegen kommt der Wert -40 zustande. -40 ist eine der Koordinaten auf denen der Würfel gezeichnet wird.

Ich werde jetzt erstmal probieren eure Vorschläge umzusetzen
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#3

AW: Farbe aus einem Pixel bekommen.

  Alt 24. Mär 2011, 03:32
Du versuchst jetzt aber nicht irgend ein 3D
Dings zu bauen ? Dann würde ich eher zu
OpenGL raten.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Farbe aus einem Pixel bekommen.

  Alt 24. Mär 2011, 06:13
Für einen Anaglyphen muß er ja nicht auf OpenGL zrückgreifen....
Ich hatte vor einiger Zeit den Anhang schon mal gepostet, finde ihn aber nicht mehr, daher nochmals, vielleicht kannst Du es ja brauchen.
Der schnellste Zugriff für Deinen Fall wäre IMHO der unter Button4Click über FastPixel.
Zwei gleich große Bitmaps und beim Kombinieren jeweils 2 Bytes in ein Word addieren, shr 1 und in das Byte des Zielbitmaps (zurück)schreiben.
Angehängte Dateien
Dateityp: zip PerformanceTest_Scanline_Pixels.zip (84,5 KB, 8x aufgerufen)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

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

AW: Farbe aus einem Pixel bekommen.

  Alt 24. Mär 2011, 08:47
@turboPascal: Och warum nich? Mal selbst nen bisschen 3d Basics zu machen schadet nicht, wen man mal mit OpenGL&Co arbeiten möchte. Ich hab mal nen kleinen Softwareratserizer in Delphi geschrieben.

Projectthread im Externen Forum(3dsg-Hobbyschmiede)

MFG
Memnarch
  Mit Zitat antworten Zitat
torro

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

AW: Farbe aus einem Pixel bekommen.

  Alt 24. Mär 2011, 08:58
Du versuchst jetzt aber nicht irgend ein 3D
Dings zu bauen ? Dann würde ich eher zu
OpenGL raten.
Doch, tue ich. Die Mathematik dahinter ist ja recht simpel.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

AW: Farbe aus einem Pixel bekommen.

  Alt 24. Mär 2011, 14:44
Hast du den Code eigentlich mal durchlaufen lassen und dir das Ergebnis angeschaut? - Alles was < 0 ist, gibt es gar nicht (es wird nicht gezeichnet, also gleich wieder verworfen). Du kannst aber dann deine TImages gerne nach x=-40 verschieben. Denen macht das nix.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
torro

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

AW: Farbe aus einem Pixel bekommen.

  Alt 24. Mär 2011, 20:49
Ja habe ich. und ich weis dass es die Koordinate -40 gibt.
  Mit Zitat antworten Zitat
Antwort Antwort


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