Initial commit
[camargo/rgb565conv.git] / main.cpp
1 #include <QCoreApplication>
2 #include <QImage>
3 #include <QRgb>
4 #include <QFile>
5
6 int main(int argc, char *argv[])
7 {
8     QCoreApplication app(argc, argv);
9     QImage image;
10     image.load(argv[1]);
11
12     QImage image2 = image.convertToFormat(QImage::Format_RGB16);
13
14     unsigned short out[image.width() * image.height()];
15
16     /*
17     for(int y = 0; y < image.height(); y++)
18     {
19         for(int x = 0; x < image.width(); x++)
20         {
21             QColor color(image.pixel(x, y));
22             out[x + y*image.width()] = ((color.red() >> 3 & 0b11111) << 11) | ((color.green() >> 2 & 0b111111) << 5) | ((color.blue() >> 3 & 0b11111)) ;
23         }
24     }*/
25
26     memcpy(out, image2.bits(), image.width() * image.height() * 2);
27
28
29     QImage result( (const uchar*)out, image.width(), image.height(), QImage::Format_RGB16);
30     result.save("debug.png");
31
32
33     for(int y = 0; y < image.height(); y++)
34     {
35         for(int x = 0; x < image.width(); x++)
36         {
37             int offset = x  + y*image.width();
38             out[offset] = ((out[offset] & 0x00ff) << 8) | ((out[offset] & 0xff00) >> 8);
39         }
40     }
41
42     QFile outf(argv[2]);
43     outf.open(QFile::WriteOnly);
44     outf.write((const char *)out, image.width() * image.height() * 2);
45     outf.close();
46 }