Autor Wątek: FreeImage "Wydobywanie" wartości piksela 8 bitowego  (Przeczytany 905 razy)

Offline Montjet

  • Użytkownik

# Wrzesień 03, 2016, 00:03:12
Witam,
za pomocą FreeImage wczytuję obraz i odczytuję piksele za pomocą kodu:
RGBQUAD value;
FreeImage_GetPixelColor(dib, x, y, &value);

std::cout << "red: " << value.rgbRed;
itd.

Sprawa się komplikuje, gdy chcę odczytać wartość obrazu 8bpp (skala szarości).
Używam komendy:
Cytuj
BYTE value;
bool r = FreeImage_GetPixelIndex(dib, x, y, &value);
std::cout << "value: " << color;
r wynosi false i wyniki są przeróżne (błędne).

Co robię źle? Jak odczytać tą wartość?

#edit
Udało mi się znaleźć mały błąd (obraz png prze-konwertował się na RGBA).
Przy JPG r już wynosi true ale wartość zamiast 200 pokazuje 203, coś zatem nadal jest źle.
W gimpie otwarłem obraz i pokazuje właściwą wartość.
« Ostatnia zmiana: Wrzesień 03, 2016, 00:11:51 wysłana przez Montjet »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline MrKaktus

  • Użytkownik

# Wrzesień 03, 2016, 00:41:36
ale wartość zamiast 200 pokazuje 203, coś zatem nadal jest źle.
Sprawdz czy poprawnie konwertuje sie sRGB do linear RGB etc.

Offline Montjet

  • Użytkownik

# Wrzesień 03, 2016, 03:49:33
Jak to zrobić?