1.1 --- a/MiniDisplay/minidisplay.cpp Tue May 27 22:14:29 2014 +0200
1.2 +++ b/MiniDisplay/minidisplay.cpp Wed May 28 08:06:27 2014 +0200
1.3 @@ -73,11 +73,15 @@
1.4 void MiniDisplay::setFont(const QFont& aFont)
1.5 {
1.6 iFont=aFont;
1.7 + iFont.setStyleStrategy(QFont::NoAntialias);
1.8 QString strDemo="0123456789ABCDEF";
1.9 QFontMetrics metrics(iFont);
1.10 - QSize size(metrics.width(strDemo),metrics.height());
1.11 + int w=metrics.width(strDemo);
1.12 + int h=metrics.height();
1.13 + QSize size(w,h);
1.14 QImage image(size,QImage::Format_Mono);
1.15 image.fill(0xFFFFFFFF);
1.16 + //Draw some text into our image
1.17 {
1.18 QPainter painter(&image);
1.19 //painter.begin(&image);
1.20 @@ -85,6 +89,27 @@
1.21 painter.setFont(iFont);
1.22 painter.drawText(0,metrics.ascent(),strDemo);
1.23 }
1.24 - //painter.end();
1.25 + //Save image as PNG for validation
1.26 image.save("font.png");
1.27 + //
1.28 + //int sizeInBytes=image.byteCount();
1.29 + int pixelCount=w*h;
1.30 + BitArray bits(pixelCount);
1.31 +
1.32 + for (int i=0;i<w;i++)
1.33 + {
1.34 + for (int j=0;j<h;j++)
1.35 + {
1.36 + QRgb color=image.pixel(i,j);
1.37 + if (color!=0xffffffff)
1.38 + {
1.39 + bits.SetBit(i*h+j);
1.40 + }
1.41 + }
1.42 + }
1.43 +
1.44 + iDisplay.Clear();
1.45 + iDisplay.BitBlit(bits,w,h,0,0);
1.46 + iDisplay.SwapBuffers();
1.47 + //
1.48 }