Я пытаюсь понять, почему приведенный ниже код изменяет QImage в Qt. Это не предназначено для чего-либо (пока), это просто для тестирования. Когда я запускаю код на изображении с альфа-каналом, альфа-канал теряется и заменяется черным фоном.
QImage image;
image.load("image.png");
for (int y = 0; y < image.height(); y++) {
for (int x = 0; x < image.height(); x++) {
QColor c = QColor::fromRgba(image.pixel(x, y));
c.setHsv(c.hue(), c.saturation(), c.value());
image.setPixel(x, y, c.rgba());
}
}
Вот результат, когда я закомментировал строку image.setPixel(...)
:
А вот результат со строкой image.setPixel(...)
:
Я ожидаю, что мой код не изменит изображение. Есть идеи, почему он это делает?