Formations à l'informatique et à l'électronique

Auteur : SD
Créé le : 15-11-2017

Bitmap To Header File code source

Page principale de Bitmap To Header File

Autres fichiers source de Bitmap To Header File

Fichier main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();

return a.exec();
}

Fichier qimage16.cpp

#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();
}

Page principale de Bitmap To Header File

Autres fichiers source de Bitmap To Header File


Vous avez apprécié cet article ? Partagez le !