Qt : Convertir une QImage en noir & blanc

Posté par seiyar81 le 27 décembre 2012 | Laisser un commentaire (0)

Qt, actuellement en version 4.8 et 5.0 RC2, possède un certain nombre de fonctionnalités propre aux graphismes et au dessin.
Notamment une bonne gestion des différents formats d’images comme vous pouvez le voir dans le tableau suivant :

Format Description Support de Qt
BMP Windows Bitmap Read/write
GIF Graphic Interchange Format (optional) Read
JPG Joint Photographic Experts Group Read/write
JPEG Joint Photographic Experts Group Read/write
PNG Portable Network Graphics Read/write
PBM Portable Bitmap Read
PGM Portable Graymap Read
PPM Portable Pixmap Read/write
TIFF Tagged Image File Format Read/write
XBM X11 Bitmap Read/write
XPM X11 Pixmap Read/write

S’il est possible de base de manipuler les images en changeant le mode RVB, en modifiant les pixels ou les couleurs, il faut passer par une manipulation manuelle pour convertir une image en niveaux de gris.
Pour cela rien de plus simple que la fonction suivante :

void toGrayscale(QImage & image)
{
    Q_ASSERT(!image.isNull());
    Q_ASSERT(image.width() > 0 && image.height() > 0);

    QRgb col;
    int gray;
    int width = image.width();
    int height = image.height();
    QImage alpha = image.alphaChannel(); // On sauvegarde le canal alpha pour la transparence
    for (int i = 0; i < width; ++i)
    {
        for (int j = 0; j < height; ++j)
        {
            col = image.pixel(i, j);
            gray = qGray(col);
            image.setPixel(i, j, qRgb(gray, gray, gray));
        }
    }
    image.setAlphaChannel(alpha);
}

L’opération n’est pas des plus légères puisqu’elle modifie un à un tous les pixels de l’image, toutefois elle fait ce qu’on lui demande.

Catégorie: C++, Qt | Laisser un commentaire (0)

Dupliquer une partition et la rendre bootable sous Linux

Posté par seiyar81 le 28 mars 2012 | Laisser un commentaire (0)
Dupliquer une partition sous Linux - Image

Il peut arriver pour un besoin quelconque d’avoir à dupliquer une partition.
Prenons le cas suivant : vous avez envie de faire une sauvegarde de votre disque dur préféré sur un autre disque ou bien vous possédez déjà une image de votre disque et vous souhaitez la réinstaller sur un disque vierge (ou non).

Et bien vous allez voir que tout ceci se fait très simplement sous Linux, en ligne de commande sans avoir besoin de connaître l’OS par cœur.

Il faut tout d’abord trouver le label de la partition à copier, pour cela on liste les disques/partitions présentes :

hugo@seiyar81:/home$ fdisk -l

A partir de là vous pouvez retrouver le label de la partition, de la forme sdb1, sdc1 etc …
Il y a ensuite plusieurs possibilités, soit vous voulez faire une image de votre disque, auquel cas un simple dd suffira :

hugo@seiyar81:/home$ dd if=/dev/sda1 of=/path/backup_disque.img

if étant l’entité à copier et of l’entité de sortie et dd ayant l’avantage d’assurer une certaine intégrité des données.

Ensuite soit vous disposez déjà d’une image de votre partition ou vous souhaitez en dupliquer une directement, auquel cas :

hugo@seiyar81:/home$ dd if=/path/backup_disque.img of=/dev/sdc1

Vous recopiez ainsi bit à bit l’image sur la partition.

hugo@seiyar81:/home$ dd if=/dev/sdc1 of=/dev/sda1

Vous dupliquez bit à bit la partition sdc1 sur la partition sda1.

Maintenant que la copie est terminée, le processus pouvant être assez long puisqu’il s’agit d’une copie bit à bit, il va falloir rendre la partition bootable (si c’est toutefois ce que vous voulez :D).

Pour cela rien de plus simple qu’un petit chroot pour monter le système de fichiers de la partition fraîchement copiée, imaginons que le disque contenant la partition est sdc :

hugo@seiyar81:/home$ mount /dev/sdc /mnt
hugo@seiyar81:/home$ mount –o bind /dev /mnt/dev
hugo@seiyar81:/home$ mount –o bind /proc /mnt/proc
hugo@seiyar81:/home$ mount –o bind /sys /mnt/sys
hugo@seiyar81:/home$ chroot /mnt

Maintenant on lance l’utilitaire Grub :

hugo@seiyar81:/$ grub
grub> find /boot/grub/stage1
grub> root (hd1,0)
grub> setup (hd1)
grub> quit
hugo@seiyar81:/$ exit

Vous devriez maintenant être en mesure de pouvoir booter sur votre partition.

Catégorie: Geek, Linux | Laisser un commentaire (0)

Gérer ses images CD sous Linux

Posté par seiyar81 le 20 mai 2010 | Laisser un commentaire (0)
Monter ses images CD sous Linux

Il faut bien l’avouer, se trimballer avec tous les CDs de ses logiciels/jeux/musique/films c’est impossible. Ou alors il faut se déplacer en voiture voire en semi-remorque pour certains !

Heureusement pour nous Dieu l’Homme a inventé l’image CD (ou image disque) !
Une image disque n’est ni plus ni moins qu’une copie du système de fichier d’un CD ou DVD mais je suppose que vous le savez déjà.

Quels formats ?

Il existe une foultitude de format de fichiers pour les images CD, les plus connus étant :

  • ISO, le format le plus répandu, c’est la norme internationale ISO 9660
  • IMG, une copie binaire d’un CD ou d’un DVD sous forme d’un fichier nativement lu sous Mac OS X
  • DMG, image ISO lisible, inscriptible et cryptable nativement sous Mac OS X
  • CCD, le format de Clone CD
  • CDI, le format du DiscJuggler (en)
  • CUE, le format de Cue sheet
  • MDS, le format de Media Descriptor, utilisé par Alcohol
  • NRG, le format utilisé par Nero Image Editor
  • PDI, le format de Instant CD/DVD
  • UIF, le format de Magic ISO (qui est une image ISO compressée)

Comment gérer mes images CD ?

Sous Windows on dispose de logiciels tels que Daemon Tools ou Alcohol 120% qui permettent de “monter” ses images CD sur des lecteurs virtuels.
Principal défaut de ces logiciels : ils ajoutent des lecteurs virtuels, pas gênants mais ça pollue le poste de travail :p

Sous Linux c’est une autre histoire, tout est histoire d’une ligne de commande. Simple et efficace :

hugo@seiyar81:/home$ sudo mount -o loop -t iso9660 yriase.iso /media/cdrom0

On indique l’option loop pour rendre le fichier accessible comme un système de fichier et -t pour indiquer le type de système de fichier, ici une image iso.

Et les autres formats de fichiers ?

Linux est fort ! Il existe des programmes qui permettent la conversion d’images aux formats bin, mdf ou encore dmg vers le format iso.

Pour transformer une image mdf en iso :

hugo@seiyar81:/home$ sudo apt-get install mdf2iso
hugo@seiyar81:/home$ mdf2iso image.mdf image.iso

Pour transformer une image bin en iso :

hugo@seiyar81:/home$ sudo apt-get install ccd2iso
hugo@seiyar81:/home$ ccd2iso image.bin image.iso

Pour transformer une image dmg en iso nous utiliserons l’outil bchunck et dmg2img. Vous pouvez également utiliser bchunk pour transformer vos .bin en .iso.

hugo@seiyar81:/home$ sudo apt-get install bchunk dmg2img
hugo@seiyar81:/home$ dmg2img fichier.dmg fichier.img
hugo@seiyar81:/home$ bchunk fichier.img fichier.iso

Une fois que vous n’avez plus besoin du CD :

hugo@seiyar81:/home$ sudo umount /media/cdrom0

Vous disposez maintenant de toutes les informations pour gérer vos images CD sous Linux !

Catégorie: Linux | Laisser un commentaire (0)

Créer un .ico à partir d’un .png en ligne

Posté par seiyar81 le 11 novembre 2009 | Laisser un commentaire (0)

Un outil bien pratique sur lequel je viens de tomber et qui permet de créer un icône à partir d’une image en .png, .gif ou .jpeg.
Jusque là rien de forcément exceptionnel mais ce qui est intéressant c’est la capacité de l’outil à gérer les différentes tailles de l’icône. Ainsi on peut choisir des tailles allant de 16×16 à 256×256.

Une découverte que je classe directement dans les indispensables !

Ca s’appelle ConvertIcon et ça se passe ici : http://converticon.com/

Catégorie: Brèves | Laisser un commentaire (0)