AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen
Thema durchsuchen
Ansicht
Themen-Optionen

RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

Ein Thema von jus · begonnen am 16. Feb 2011 · letzter Beitrag vom 19. Feb 2011
Antwort Antwort
Seite 2 von 2     12   
Medium

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

AW: RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

  Alt 18. Feb 2011, 02:46
Denk doch einfach mal in Richtung Weiterverarbeitung, z.B. HDR-Imaging, Composing, etc. pp. Man kann sooo viel mehr mit einem Bild machen, als es bloß anzusehen

@jus: Schon mal Bei Google suchendelphi tiff etwas durchforstet? Da scheint es einen ganzen Haufen an Libs zu geben - darunter sicherlich auch welche, die nicht "Zwangsrunterrechnen". Im Zweifel bleibt auch noch die Option, sich auf wotsit die Specs zu Gemüte zu führen, und via Stream selbst einen Loader zu Knuspern
"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
Benutzerbild von himitsu
himitsu

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

AW: RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

  Alt 18. Feb 2011, 06:59
8 Bit pro Pixel? Wäre mir neu.
Wieso nicht?
3-3-2 (RGB) = 8
Wobei es auch 11-11-10 (RGB) = 32 gibt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#13

AW: RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

  Alt 18. Feb 2011, 11:46
Letzendlich ist es ja nur eine Definitionssache.
Übrigens, jus, warum bist du mit meinem Vorschlag nicht zufrieden?
Das dürfte so funktionieren!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  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
 
#14

AW: RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

  Alt 18. Feb 2011, 19:09
@Aphton vielleiht ist alles ja nur ein großes Missverständins und er sucht nur
TPixelFormat = (pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom);

für Deinen Vorschlag müsste es neben, dem größten
Delphi-Quellcode:
  tagRGBQUAD = packed record
    rgbBlue: Byte;
    rgbGreen: Byte;
    rgbRed: Byte;
    rgbReserved: Byte;
  end;
noch größere Definitionen geben die zumindest von Delphiseite nicht sichtbar sind. Da ich noch keine mit Grafikkarte mehr als 32 - Bit gesehen habe glaue ich dass der Zugriff über die Bitmapebene nicht möglich sein wird.
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
jus

Registriert seit: 22. Jan 2005
343 Beiträge
 
Delphi 2007 Professional
 
#15

AW: RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

  Alt 18. Feb 2011, 22:50
@Aphton:
zunächst mal vielen Dank für deinen Quellcode. Wie im Anfangsbeitrag schon erwähnt sind mir auch Befehle wie z.B. scanline nicht ganz fremd. Das Problem liegt jedoch darin, dass es unter Delphi und mit Windows GDI Api nicht ganz trivial ist, direkt an die RGB Werte z.B. in 16bit-Ausführung (pro Farbkanal, sprich 16bitRed+16bitGreen+16bitBlue => 48bit) zu kommen.
Die Aussagen von Medium und Bummi decken sich mit meinen bisherigen Nachforschungen. Es scheinen die Windows Standard GDI-Funktionen und auch Delphi nur bis zu 8bit pro RGB-Farbkanal zurückzugeben. Das bedeutet für mich, dass ich mich wirklich mit einer zusätzlichen Grafikbibliothek auseinandersetzen muß, wenn ich die Werte auslesen möchte. Achja, so wie ich es verstanden habe ist scanline eher was Borland spezifisches. Wenn man die C-Sourcen von anderen Herstellern durchgeht ist selten scanline zu finden. Trotzdem finde ich scanline genial. Da muß man sich nicht um dem Alignment am Ende einer Pixelzeile kümmern.

Lg,
jus

Geändert von jus (18. Feb 2011 um 22:56 Uhr)
  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
 
#16

AW: RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

  Alt 18. Feb 2011, 23:02
Etwas off topic hier, aber zum Thema Scanline habe ich für 32 Bit (24=etwas umstricken) etwas experimentiert. Über die letzte Scanline zugegriffen bekommt man einen wahlfreien schnellen Zugriff auf alle "Pixel" Faktor 55 im Vergleich zu Pixels[x,y]
Angehängte Dateien
Dateityp: zip PerformanceTest_Scanline_Pixels.zip (84,5 KB, 10x 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 Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#17

AW: RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

  Alt 18. Feb 2011, 23:54
@Aphton:
zunächst mal vielen Dank für deinen Quellcode. Wie im Anfangsbeitrag schon erwähnt sind mir auch Befehle wie z.B. scanline nicht ganz fremd. Das Problem liegt jedoch darin, dass es unter Delphi und mit Windows GDI Api nicht ganz trivial ist, direkt an die RGB Werte z.B. in 16bit-Ausführung (pro Farbkanal, sprich 16bitRed+16bitGreen+16bitBlue => 48bit) zu kommen.
Die Aussagen von Medium und Bummi decken sich mit meinen bisherigen Nachforschungen. Es scheinen die Windows Standard GDI-Funktionen und auch Delphi nur bis zu 8bit pro RGB-Farbkanal zurückzugeben. Das bedeutet für mich, dass ich mich wirklich mit einer zusätzlichen Grafikbibliothek auseinandersetzen muß, wenn ich die Werte auslesen möchte. Achja, so wie ich es verstanden habe ist scanline eher was Borland spezifisches. Wenn man die C-Sourcen von anderen Herstellern durchgeht ist selten scanline zu finden. Trotzdem finde ich scanline genial. Da muß man sich nicht um dem Alignment am Ende einer Pixelzeile kümmern.

Lg,
jus
Ohh verstehe; es ging dir eigentlich nicht um das Auslesen sondern ums Interpretiern bzw. Anzeigen eines 16 Bit Farbchannels.
Ich hab eigentlich auch spontan keine Ahnung, wie das ginge, aber, falls das nicht problematisch ist, könntest du die Werte ja runtermappen auf 8 Bit und so anzeigen - falls dir die Werte nur für eine Berechnung wichtig sind!
Und das runtermappen ginge ja so:
( Wert / Max16BitWert ) * Max8BitWert = ( 3000 / 65536 ) * 256 ~ 11 (4.5 % von 256)
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (18. Feb 2011 um 23:57 Uhr)
  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
 
#18

AW: RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

  Alt 19. Feb 2011, 09:07
Zitat:
falls das nicht problematisch ist, könntest du die Werte ja runtermappen auf 8 Bit und so anzeigen -
das wird das sein was ohnehin bei der Darstellung passiert......
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 jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#19

AW: RGB Werte von Bilder mit Farbtiefe mehr als 8bit (z.B.16bit, 32bit) abfragen

  Alt 19. Feb 2011, 10:03
das wird das sein was ohnehin bei der Darstellung passiert......
Nicht unbedingt. Mit dem passenden Equipment kann man durchaus auch höhere Farbauflösungen (z.B. 10bit pro Kanal) anzeigen wenn die Software mitspielt.

Mit GDI+ kann man sowas wohl laden ( http://msdn.microsoft.com/en-us/libr...xelformat.aspx ) aber da steht auch:
Zitat:
PixelFormat48bppRGB, PixelFormat64bppARGB, and PixelFormat64bppPARGB use 16 bits per color component (channel). GDI+ version 1.0 and 1.1 can read 16-bits-per-channel images, but such images are converted to an 8-bits-per-channel format for processing, displaying, and saving. Each 16-bit color channel can hold a value in the range 0 through 2^13.
Das hört sich dann nicht so prickelnd an ...
  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 01:57 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