Skip directly to content

Images BMP compressées

Portrait de zozodesbois
on mar, 03/05/2011 - 16:33

Certains .bmp ne peuvent pas être ouvert par les logiciels de retouche d'image, car ils ont un format non standard.

C'est un format compressé spécifique à Realtek.

Ces images peuvent être remplacées par des .bmp non compressés, mais elles doivent avoir les même dimentions.
La compression à son avantage au niveau économie de place et de temps de lecture.

Il faut faire des tests, car apparement on peut compresser tous les fichiers .bmp de nos machines.

RAPPEL les images BMP sur les HMB sont au format 16 bit R5G6B5

Outil de compression/dé-compression du BMP

Programme original

Le programme de compression initial vient d'ici http://ww2.cs.mu.oz.au/mg/
Le code source du programme est là http://ww2.cs.mu.oz.au/mg/mg-1.2.1.tar.gz

Mirroir sur le GeekyHMB mg-1.2.1.tar.gz

Programme alternatif

Windows Wine

Lossless, un Russe a mis au point un autre programme qui tourne sous Windows. Il marche parfaitement bien avec Wine sous Linux

Site Russe traduit par Google http://playonhd.ucoz.ru
Site Russe non traduit http://playonhd.ucoz.ru

Les programmes exécutables sont dans les outils du GeekyHMB, vous trouverez l'archive rt_bmp.7z qui se décompresse avec 7zip

Mettez le programme rt2bmp.exe dans un dossier où se trouvent des fichiers compressés.
Ce programme ne modifie pas vos fichiers originaux, qui vont rester dans votre dossier.
Il va créer un dossier rfd. Il va contenir la version décompressée de vos fichier.
Si des fichiers non compressés sont présents dans le dossier à décompresser, les fichiers seront simplement ignorés.

Quand au programme bmp2rt.exe il sert à compresser vos fichiers selon le même principe que le programme de décompression.

Description du BMP compressé

(Informations tirées du site http://playonhd.ucoz.ru)

Avec un éditeur hexadécimal on voit que ces fichiers bmp commencent par le code RT (pour RealTek) au lieu de BM pour les fichiers BMP standards.

Pour connaître les dimensions de l'image, toujours avec un éditeur hexadécimal, on va regarder les positions 8 à 9 et 10 à 11 et les convertir en décimal.

Dans notre exemple:

Positions 8 à 9 en vert donnent en hexadécimal 2D00. Ce qui donne en décimal 45 pixels
Positions 10 à 11 en bleu donnent en hexadécimal 5500. Ce qui donne en décimal 85 pixels
La taille de l'image est donc de 45x85 pixels.

Sélection et information des fichiers RT

Script shell pour repérer les fichiers compressés en indiquant leurs dimmentions sous forme de tableau

(Scripts de wigout dans le forum de l'Ac-Ryan)

echo -e "filename \t width \t height";for f in `ls|grep -ie '.bmp'`; do echo -e "${f} \t" "$((`hexdump -n 4 -s 8 ${f} | cut -c8-12 | sed -e 's/ /0x/'`)) \t" "$((`hexdump -n 4 -s 8 ${f} | cut -c13-17 | sed 's/ / 0x/'`))"; done

Pour n'afficher qu'un seul fichier

echo -e "width:" $((`hexdump -n 4 -s 8 IMAGE_GBROWSER_BG.bmp | cut -c8-12 | sed 's/ /0x/'`)) " height:" $((`hexdump -n 4 -s 8 IMAGE_GBROWSER_BG.bmp | cut -c13-17 | sed 's/ / 0x/'`))