RGB to CMYK et inversement

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 - 13 avril 2007 à 23:18
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 17 avril 2007 à 20:55
Bonsoir à tous,

Je reviens vers vous, concernant toujours cette fameuse conversion....BMP to TIF


Le technicien du boulot, cherche maitenant à convertir le format standard de microsoft .bmp en RGB 24bits au format non standard CMYK 32 bits....ou l'inverse je ne sais plus très bien, il ma tellement donner des info techniques que je me suis perdu dans son language...


Auriez-vous une orientation à ce sujet ?

Pour connaître le début de la conversation voir ici

J'ai posté ce message, car j'ai supposé que tout les participants de l'ancien post avais enlevé leur alerte mail (ce qui est normal, puisque j'ai valider les réponses concernat ma première question)


A+
Exploreur


 
A voir également:

16 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
14 avril 2007 à 10:01
Bonjour Exploreur,

Quoi qu'on pourra t'en dire ici et là ...

Tu n'obtiendras jamais une correspondance exacte de RGB (utilisé pour un affichage à l'écran et Basé sur une combinaison de Rouge, de vert et de Bleu) et CYMK (utilisé principalement pour les imprimantes et basé sur une combinaison des couleurs primaires)

Voilà un exemble : à gauche : RGB  ===>> à droite : transposé en CYMK
Celà tient principalement au fait que le G (vert) de RGB est lui-même composé de M (magenta bleu primaire) et de Y (Yellow jaune primaire)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
14 avril 2007 à 10:04
fait une recherche sur le forum, le sujet de la conversion RGB->CMJK est déjà passé il y a quelques mois, à plusieurs reprise en plus.
jmfmarques avait d'ailleurs bien animer le débat sur ce point. Il en connait un rayon semble-t-il. Il a même poster une source sur le traitement d'image , peut-etre y trouveras-tu quelques infos.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
14 avril 2007 à 10:04
GRRRRR pas assez rapide

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
14 avril 2007 à 10:11
Salut,
Il faut d'abord convertir le CMYK en CMY, ce qui est faisable vu la similitude avec le CMYK, puis ensuite le CMY en RGB, de 3 dimensions à 3 dimensions...

Alors, pour une couleur donnée tu as :
Dans l'espace CMYK ses composantes sont données par :
{C, M, Y, K}

Dans l'espace CMY tu obtiens
{C * (1 - K) + K, M * (1 - K) + K, Y * (1 - K) + K}
Appelons les {C', M', Y'}

Dans l'espace RGB, cette couleur sera donnée par
{1 - C', 1 - M', 1 - K'}
En remplacant ces constantes par leurs valeurs en CMYK, tu obtiens
{(1 - C)(1 - K), (1 - M)(1 - K), (1 - Y)(1 - K)}

Maintenant dans l'autre sens :Il suffit de faire l'opération inverse en posant que K Minimum(C', M', Y') avec la convention que si K 1, alors en CMYK la couleur est directement donnée par {0,0,0,1} (pour éviter la division par 0 dans la formule finale)
Tu obtiens :
{C', M', Y'} = {1 - R, 1 - G, 1 - B}
Et la couleur en CMYK est donnée par
{(C' - K) / (1 - K), (M' - K) / (1 - K), (Y' - K) / (1 - K), K}
<hr size="2" width="100%" />Julien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
14 avril 2007 à 12:07
Bonjour, julien237,

C'est bien, mais le résultat final n'est jamais exact ! Il est juste le plus rapproché possible.
Essaye déjà avec le gris et tu vas comprendre !
Le gris réel (dit naturel... celui des peintre, quoi...) est obtenu par la combinaison de trois parties égales de C, de Y et de M
La combinaison de 3 parties égales de R, de G et de B te donnera un gris rapproché, mais pas le même gris.
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
14 avril 2007 à 12:14
Je suis tout à fait d'accord avec toi jmfmarques.
Et inversément si on considère du RGB(1,0,0), ca nous donne full magenta et yellow en CMYK qui n'est pas vraiment du rouge pur et idem pour bleu et vert...
C'est juste les formules que les imprimantes utilisent...

<hr width="100%" size="2" />Julien.
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
14 avril 2007 à 12:48
Bonjour à tous,

Merci à tous de vos réponses...

Jmfmarques >> Merci  pour toutes tes explications que je ne manquerai pas de communiquer au technicien.

Casy >> Je n'ai pas retrouvé le sujet de conversation dont tu parles, ou alors j'ai mal chercher avec les mauvais termes. Je suis entièrement d'accord avec toi que Jmfmarques en connait un rayon sur ce sujet au vu de toutes ses réponses donné sur des sujets identique sur le forum...

Julien237 >> Merci à toi aussi pour toutes ces informations.

Ce que je sais c'est qu'il est arrivé à convertir le Bmp to Tif, et que maintenant c'est un problème de "couleurs" du moins du format utilisé.

De toute façon je vous tiens au courant sur ce sujet ouvert, et reviendrai vers vous...

Merci à tous

A+
Exploreur

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
17 avril 2007 à 15:13
Bonjour à tous,

Voilà, de nouveau de retour avec une explication sur ce que veut faire le technicien du boulot...

Dans un premier temps il arrive bien à convertir un fichier Bmp en fichier Tif au format RGB 24 bits....

Lui, ce qu'il souhaite, c'est convertir (si c'est possible) le fichier Tif au format RGB 24 bits au format CMYK 32 bits...

D'après vous, est-ce possible? Si oui, auriez-vous une orientation à lui proposer ?

Merci d'avance de votre réponse

A+
Exploreur

 
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
17 avril 2007 à 16:46
La formule que je t'ai mise plus haut ne convient pas ?

<hr width="100%" size="2" />Julien.
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
17 avril 2007 à 16:50
Salut,

Le truc qu'il n'arrive pas a faire entre autre c'est de modicier l'entête du fichier une fois transformé...

A+
Exploreur

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
17 avril 2007 à 16:52
Je vais lui dire d'ouvrir un compte su Vbfrance, car je sens que je suis mal barré pour expliquer ses explications...

A+
Exploreur

 
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
17 avril 2007 à 16:58
Salut,
D'accord, je ne voyais pas cet angle du problème...
Je comprendrais tout à fait que tu préfère une dll ou une fonction toute faite, mais voila  la description officielle du format Tiff.
Bonne lecture

<hr width="100%" size="2" />
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
17 avril 2007 à 17:05
Salut,

Merci, je vais lui envoyer le liens pour qu'il fasse sa lecture...

Et Merci d'avoir garder l'alerte mail de ce message...

A+
Exploreur

 
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
17 avril 2007 à 17:30
Encore une chose, je vois que tu es en VB6, mais en .Net, c'est fait très facilement !
Je viens de faire ceci en 10 minutes et ca à l'air de fonctionner...



Dim
codecs()

As
Imaging.ImageCodecInfo = Imaging.ImageCodecInfo.GetImageEncoders




Dim
tiffCodec

As
Imaging.ImageCodecInfo =

Nothing








For
i

As



Integer
= 0

To
codecs.Length - 1


If
codecs(i).FilenameExtension.Contains(

"TIF"
)

Then

tiffCodec = codecs(i)







End



If






Next






If
tiffCodec

Is



Nothing



Then

MsgBox(




"Impossible de trouver l'encodeur tiff."
)


Exit



Sub






End



If






Dim
encoderParams

As



New
Imaging.EncoderParameters(1)encoderParams.Param(0) =


New
Imaging.EncoderParameter(Imaging.Encoder.SaveFlag
, _Imaging.EncoderValue.ColorTypeCMYK)


Dim
bmp

As



New
Bitmap(70, 70, Imaging.PixelFormat.Format32bppArgb)


Dim
g

As
Graphics = Graphics.FromImage(bmp)g.FillRectangle(Brushes.BlueViolet,


New
Rectangle(10, 10, 50, 50))bmp.Save(


"Yop.tiff"
, tiffCodec, encoderParams)

Tu veux que je te fasse un dll qui te fait la conversion tout seul ?

<hr width="100%" size="2" />Julien.
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
17 avril 2007 à 17:46
Salut,

Là je suis rentré chez moi...Demain matin je lui montrerai ce bout de code, et qu'il essaye de l'adpater en VB6..

Car en faite toute son appli de vision est faite en VB6...

A+
Exploreur

 
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
17 avril 2007 à 20:55
Ouaip je comprends bien,
Mais à essayer de l'adapter il perdrait son temps, ce ne sont que des fonctions du framework, bref propre au .Net.

<hr width="100%" size="2" />Julien.
0
Rejoignez-nous