Farbraum bzw Farbmodell eines Bildes herausfinden bzw ändern
Hallo,
ich bin dabei ein Programm zu schreiben, mit dem Bilddateien (jpg, bmp, tif, png) "analysiert" und ggf konvertiert werden sollen.
Die Analyse soll unter anderem den Farbraum/das Farbmodell (RGB, CMYK, YCbCr, ggf weitere) umfassen, der/das bei dem Bild angewendet ist.
Mit
erhalte ich zwar einen Wert (bsp "Format24bppRgb {137224}"), der ist aber interessanterweise(?) bei Bildern aus dem Farbraum RGB und YCbCr gleich.
Kann mir bitte jemand sagen, wie ich zuverlässig und eindeutig den verwendeten Farbraum eines Bildes herausfinde?
Neugierige Grüße,
Andreas
ich bin dabei ein Programm zu schreiben, mit dem Bilddateien (jpg, bmp, tif, png) "analysiert" und ggf konvertiert werden sollen.
Die Analyse soll unter anderem den Farbraum/das Farbmodell (RGB, CMYK, YCbCr, ggf weitere) umfassen, der/das bei dem Bild angewendet ist.
Mit
strPixelFormat = imgBild.PixelFormat
Kann mir bitte jemand sagen, wie ich zuverlässig und eindeutig den verwendeten Farbraum eines Bildes herausfinde?
Neugierige Grüße,
Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 236846
Url: https://administrator.de/forum/farbraum-bzw-farbmodell-eines-bildes-herausfinden-bzw-aendern-236846.html
Ausgedruckt am: 13.04.2025 um 01:04 Uhr
7 Kommentare
Neuester Kommentar
Falls du es in VB.Net benötigst:
Grüße Uwe
Imports System.Drawing.Imaging
Public Enum ImageColorFormat
Rgb
Cmyk
Indexed
Grayscale
End Enum
Function GetImageColorFormat(bm As Bitmap) As ImageColorFormat
Const pixelFormat32bppCMYK As Integer = &H200F
Dim flags As ImageFlags = bm.Flags
If flags.HasFlag(ImageFlags.ColorSpaceCmyk) Or flags.HasFlag(ImageFlags.ColorSpaceYcck) Then
Return ImageColorFormat.Cmyk
ElseIf flags.HasFlag(ImageFlags.ColorSpaceGray) Then
Return ImageColorFormat.Grayscale
End If
Select Case bm.PixelFormat
Case pixelFormat32bppCMYK
Return ImageColorFormat.Cmyk
Case PixelFormat.Format16bppGrayScale
Return ImageColorFormat.Grayscale
Case PixelFormat.Indexed
Return ImageColorFormat.Indexed
End Select
'default is rgb
Return ImageColorFormat.Rgb
End Function
mach mal aus Zeile 04:
dann wird dir das Format anstatt als Integer des Enums als String angezeigt.
MsgBox(GetColorFormat(imgBild).toString())
Kann ich irgendwie prüfen, ob die Einstellungen von FastStone tatsächlich den gewünschten entsprechen?
Noch einen anderen Image-Viewer zur Kontrolle benutzen (z.B. Irfanview).