Que le code est un "slicer" pour imprimante SLA, ca ne part pas e fichier aleatoirement googlé, ca prends des fichiers STL on les deplaces, on applique des changement rotation/echelle, ensuite le soft "decoupe" par tranche le machin sur l'axe Z en fait l'empreinte, et sors une image de la dite empreinte.
A aucun moment du JPG ne devrait être dans la chaine de fonctionnement, d'ailleurs un tel réglage avec une valeur fixe est tres douteux (pourquoi 32? pourquoi pas 64 ou 128?)
Zero: B9Creator (
https://github.com/B9Creations/B9Creator )
Et le packing du pixmap est le suivant:
On créé un "QBitArray"
On y pousse la taille W puis H, chacun sur 16 bit et on supprime allègrement les bits au dessus, si une taille fait plus de 65K, RaF
On regarde la couleur du premier pixel (noir ou blanc) puis on commence a compter (de manière linéaire) le nombre de pixel de la meme couleur, quand ca change, on regarde le nombre de bit qui est necessaire pour représenter ce nombre, on le pousse le nombre du nombre de bit dans le bitarray avec 5 bit maximum (donc si plus de 4 milliards de pixel c'est VTFF!) puis on pousse le nombre du nombre de pixel avec les N(+1) bit decidé plus tot.
Et on recommence avec les pixels suivants, jusqu'a arriver au bout de la chaine.
Fait amusant, si on a un "gris 50" on se retrouve avec 6 bits d'utilisé pour chaque pixel, car c'est le seul moyen de stocker pour un seul pixel, donc une image de 128x128 va faire au final 12Ko au lieu de 2Ko. D'ailleurs sachant que ce format a été "défini" pour ne pouvoir etre lu que par du Qt, ce n'est pas fait pour etre lu sur un systeme embarqué, donc pourquoi se faire chier avec ce packing plutot que je sais pas, du PNG? ou n'importe quelle compression standard qui au final donnera un meilleurs resultat, et surtout est standard.
Surtout sachant que la serialisation de Qt est tout sauf optimale (surtout quand on stock la "version" du format sous forme de chaine (32Bit pour dire la taille, et chaine sauvé au format UTF16, donc "1" == 6 octets \o/)
Et l'utilisation du QBitArray par exemple est surprenante car pour ce qu'il font il aurais mieux fait de rendre leur classe serialisable avec QDataStream, plutot que d'ajouter un n-eme surcouche inutile.
Bref, un machin qui se veux pro (l'interface du soft est comment dire... "pro" c'est certains) il y a tellement de points mal pensée que ca en est risible..