Page principale de Bitmap To Header File
Autres fichiers source de Bitmap To Header File
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#include "qimage16.h"
QImage16::QImage16() : QImage() {
}
QImage16::QImage16(const QImage& img) : QImage(img) {
}
bool QImage16::saveToBmp16bits(QString fichierDst) {
QFile srcFile2(fichierDst); // Appel du constructeur de la classe QFile
if (srcFile2.open(QIODevice::WriteOnly)) {
// en-tete fichier
srcFile2.write("BM");
QDataStream out(&srcFile2);
out.setByteOrder(QDataStream::LittleEndian);
out << byteCount() + 0x28 + 14; // Taille du fichier en octets
out << 0x00000000; // Toujours 4 octets à 0 (réservé)
out << 0x00000036; // offset de l'image
// en-tete image
out << 0x00000028; // Taille de l'entete
out << width() << height(); // largeur de l'image et hauteur de l'image
out << 0x00100001; // Plan = 1 et nb bit par pixel = 16
out << 0x00000000; // Non compressé
out << byteCount(); // Taille totale image
out << 0x00000B12 << 0x00000B12; // Résolution horizontale et verticale 72 dpi
out << 0x00000000 << 0x00000000; // Palette à 0
// pixels de l'image
int nbLignes = byteCount() / bytesPerLine();
for(int j=nbLignes-1; j >= 0 ; j--) {
for(int k=0; k < bytesPerLine() ; k++) {
out << scanLine(j)[k];
}
}
srcFile2.close();
return true;
}
return false;
}
bool QImage16::saveToHeaderFile(QString fichierSrc, QString fichierDst) {
QFile dstFile(fichierDst);
QFile srcFile(fichierSrc);
bool retour = false;
if (dstFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
if (srcFile.open(QIODevice::ReadOnly)) {
unsigned int i = 0;
dstFile.write("// Fichier généré avec BitMap2HeaderFile http:\\www.electro-info.ovhn\n");
dstFile.write("const unsigned char logo[");
dstFile.write(QString::number(srcFile.size()).toStdString().c_str());
dstFile.write("] = \n{");
while(!srcFile.atEnd()) {
char b;
unsigned char ub;
srcFile.read(&b,1);
if(i > 0) dstFile.write(",");
if(i % 16 == 0)dstFile.write("nt");
i++;
dstFile.write("0x");
ub = b;
if(ub < 16) dstFile.write("0");
dstFile.write(QString::number(ub, 16).toStdString().c_str());
}
dstFile.write("\n};");
srcFile.close();
retour = true;
}
dstFile.close();
}
return retour;
}
void QImage16::operator =(const QImage& img) {
*this = QImage16(img);
}
bool QImage16::isnull() const {
return this->isNull();
}