blob: f01d946c17da3b0bdd1a010032ef8f48abddf9c9 (
plain) (
tree)
|
|
#include "utils.hpp"
#include <QColor>
#include <QImage>
rgb_t modify_color(rgb_t c, uint8_t variant)
{
int m;
switch (variant)
{
case 0: m = 180; break;
case 1: m = 200; break;
case 2: m = 255; break;
case 3: m = 135; break;
default: m = 0; break;
}
return {uint8_t(m * c.r / 255),
uint8_t(m * c.g / 255),
uint8_t(m * c.b / 255)};
}
QColor rgb2qcolor(rgb_t c) {return QColor(c.r, c.g, c.b);}
QPixmap pixmap_of_map_data(const std::array<uint8_t, 128 * 128> &map_data)
{
QImage ret(128, 128, QImage::Format_ARGB32);
for (size_t i = 0; i < 128; ++i)
for (size_t j = 0; j < 128; ++j)
{
uint8_t d = map_data[j * 128 + i];
uint8_t b = d >> 2;
uint8_t v = d & 3;
QColor color = Qt::GlobalColor::transparent;
if (b > 0 && b < 62)
color = rgb2qcolor(modify_color(MAP_COLORS[b], v));
ret.setPixelColor(i, j, color);
}
return QPixmap::fromImage(ret);
}
|