OVH Cloud OVH Cloud

[WD9] Enregistrer une image ou un champ image en BMP Monochrome

3 réponses
Avatar
Fredo MT
Bonjour,

Tout est dans le titre. La fonction dSauveImage ne permet pas d'enregistrer
une image en BMP monochrome.

Merci d'avance pour vos réponses.

3 réponses

Avatar
Gilles TOURREAU
Après mûre réflexion, Fredo MT a écrit :
Bonjour,

Tout est dans le titre. La fonction dSauveImage ne permet pas d'enregistrer
une image en BMP monochrome.

Merci d'avance pour vos réponses.



La fonction dSauveImage ne doit plus être utilisé ! Elle conservé par
compatibilité, il faut utiliser dSauveImageBMP...

Pour convertir une image en niveau de gris il faut charger ton image en
mémoire, et faire une boucle pour tous les pixel et appliquer cette
formule :

cGris = R * 0.299 + V * 0.587 + B * 0.114
où R,V,B sont les composantes respectives du Rouge, Vert, Bleu et le
résultat cGris la nouvelle couleur dans la palette des gris sur 24-bit.

Tu peux dessiner un point à l'aide de dPoint() et obtenir le point avec
la fonction dPixelCouleur().

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Fredo MT
Merci Gilles pour ta réponse,
La finalité de mon image est une image BMP monochrome et non pas en niveau
de gris. Celle-ci fait exactement 60 Ko, 800 x 600 pixels. Mon image BMP
monochrome je peux ainsi la charger sur un afficheur LCD monochrome prévu
pour charger des BMP monochrome de résolution max 800 x 600. Le codage de la
BMP est simple pour chaque pixel la valeur 1 en Héxa correspond à un pixel
noir, la valeur 0 correspond à un pixel blanc.

"Gilles TOURREAU" a écrit dans le message de news:

Après mûre réflexion, Fredo MT a écrit :
Bonjour,

Tout est dans le titre. La fonction dSauveImage ne permet pas
d'enregistrer une image en BMP monochrome.

Merci d'avance pour vos réponses.



La fonction dSauveImage ne doit plus être utilisé ! Elle conservé par
compatibilité, il faut utiliser dSauveImageBMP...

Pour convertir une image en niveau de gris il faut charger ton image en
mémoire, et faire une boucle pour tous les pixel et appliquer cette
formule :

cGris = R * 0.299 + V * 0.587 + B * 0.114
où R,V,B sont les composantes respectives du Rouge, Vert, Bleu et le
résultat cGris la nouvelle couleur dans la palette des gris sur 24-bit.

Tu peux dessiner un point à l'aide de dPoint() et obtenir le point avec la
fonction dPixelCouleur().

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr




Avatar
Gilles TOURREAU
Il se trouve que Fredo MT a formulé :
Merci Gilles pour ta réponse,
La finalité de mon image est une image BMP monochrome et non pas en niveau de
gris. Celle-ci fait exactement 60 Ko, 800 x 600 pixels. Mon image BMP
monochrome je peux ainsi la charger sur un afficheur LCD monochrome prévu
pour charger des BMP monochrome de résolution max 800 x 600. Le codage de la
BMP est simple pour chaque pixel la valeur 1 en Héxa correspond à un pixel
noir, la valeur 0 correspond à un pixel blanc.

"Gilles TOURREAU" a écrit dans le message de news:

Après mûre réflexion, Fredo MT a écrit :
Bonjour,

Tout est dans le titre. La fonction dSauveImage ne permet pas
d'enregistrer une image en BMP monochrome.

Merci d'avance pour vos réponses.



La fonction dSauveImage ne doit plus être utilisé ! Elle conservé par
compatibilité, il faut utiliser dSauveImageBMP...

Pour convertir une image en niveau de gris il faut charger ton image en
mémoire, et faire une boucle pour tous les pixel et appliquer cette formule
:

cGris = R * 0.299 + V * 0.587 + B * 0.114
où R,V,B sont les composantes respectives du Rouge, Vert, Bleu et le
résultat cGris la nouvelle couleur dans la palette des gris sur 24-bit.

Tu peux dessiner un point à l'aide de dPoint() et obtenir le point avec la
fonction dPixelCouleur().

Cordialement

-- Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Dans ce cas ce n'est pas très compliqué, tu calcule le "milieu" de la
plage RVB comme ceci :

milieuRVB = RVB(255, 255, 255) / 2

Et pour chaque pixel, si la valeur est inférieur à milieuRVB (c'est une
couleur foncé) tu dessines un point noir sinon un point blanc...

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr