begin process at 2012 05 28 15:39:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Changer les couleurs d'une bitmap


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Changer les couleurs d'une bitmap

lundi 4 avril 2005 à 13:47:21 | Changer les couleurs d'une bitmap

vecchio56

Administrateur CodeS-SourceS
Salut,
J'ai une bitmap dans une variable HBITMAP créée avec LoadBitmap et un HDC correpondant. Quelle est la manière la plus rapide de mettre tous les pixels d'une couleur c1 dans une couleur c2. J'imagine qu'une boucle de GetPixel/SetPixel n'est pas très bonne...
J'ai pensé à GetDIBits, mais je ne sais pas vraiment comment l'utiliser.
Vous avez une idée? Merci
lundi 4 avril 2005 à 14:42:08 | Re : Changer les couleurs d'une bitmap

ymca2003

Tu peux regarder ma sources sur la rotation de bitmap qui récupère les pixels par GetDIBits Devrait convenir à ce que tu veux (faire gaffe cependant au codage RGB qui est différent de celui de COLORREF).
lundi 4 avril 2005 à 15:35:53 | Re : Changer les couleurs d'une bitmap

vecchio56

Administrateur CodeS-SourceS
Ah, j'ai trouvé une solution d'avoir lu la tienne (une source en MFC que j'ai traduit), je ne sais pas laquelle est la meilleure. En fait je voulais avoir une couleur de transparence (ici RGB(0, 255, 0)). J'obtiens mon résultat dans m_hdcImage. Seul problème: je ne vois pas d'ou vient le 0x220326.

  HDC hdcImage = CreateCompatibleDC(hdc);
  HBITMAP hbmpImage = LoadBitmap(g_hInst, (LPCTSTR)m_nBitmap);
  SelectObject(hdcImage, hbmpImage);

  HDC hdcAnd = CreateCompatibleDC(hdc);
  HBITMAP hbmpAnd = CreateBitmap(16, 15, 1, 1, 0);
  SelectObject(hdcAnd, hbmpAnd);
  SetBkColor(hdcImage, RGB(0, 255, 0));
  BitBlt(hdcAnd, 0, 0, 16, 15, hdcImage, 0, 0, SRCCOPY);

  HDC hdcXor = CreateCompatibleDC(hdc);
  HBITMAP hbmpXor = CreateCompatibleBitmap(hdcImage, 16, 15);
  SelectObject(hdcXor, hbmpXor);
  BitBlt(hdcXor, 0, 0, 16, 15, hdcImage, 0, 0, SRCCOPY);
  BitBlt(hdcXor, 0, 0, 16, 15, hdcAnd, 0, 0, 0x220326);

  m_hdcImage = CreateCompatibleDC(hdc);
  m_hbmpImage = CreateCompatibleBitmap(hdcImage, 16, 15);
  SelectObject(m_hdcImage, m_hbmpImage);
  BitBlt(m_hdcImage, 0, 0, 16, 15, hdc, 0, 0, SRCCOPY);
  BitBlt(m_hdcImage, 0, 0, 16, 15, hdcAnd, 0, 0, SRCAND);
  BitBlt(m_hdcImage, 0, 0, 16, 15, hdcXor, 0, 0, SRCINVERT);

  DeleteObject(hbmpImage);
  DeleteObject(hdcImage);
  DeleteObject(hbmpAnd);
  DeleteObject(hdcAnd);
  DeleteObject(hbmpXor);
  DeleteObject(hdcXor);


Cette discussion est classée dans : changer, couleur, couleurs, bitmap


Répondre à ce message

Sujets en rapport avec ce message

Changement de toutes les couleurs dans une appli en MFC [ par obby ] Salut,  Je voudrai changer toutes les couleurs dans mon application. J'ai déjà réussi à changer la couleur de fond d'une boite de dialogue mais j'aim Bitmap 256 couleur [ par SMarmotte ] Bonjour à tous,Je cherche désespérement à faire un bitmap en mémoire de 256 couleurs que l'on peut enregistrer dans un fichier .bmp.J'ai créé une sect couleur console [ par sy3ns ] commen fait ton pour changer par exemple tte la couleur de la console pour changer un caractere une chaine ds la console Changer la couleur de texte d'un controle static [ par Gpic ] Salut à tous, ya t'il un moyen de changer la couleur du texte d'un controle static sous Visual Studio.NET. Merci Actualiser une bitmap [ par matty30 ] Bonjour,Je cherche à changer une bitmap qui se trouve ds ma bdd dans on clic droit sur cette bdd.Pour cela, j'ai crée la fonction une fonction affiche [C / Win32] Listbox en ownerdraw : Comment changer les couleurs (fond et texte) des items [ par Inekman ] Bonsoir à tous, Je cherche déseprérément à changer les couleurs des items d'une listbox (blanc sur fond rouge par exemple). J'ai trouvé pêle-mêle des Changer la couleur d'un "Pen" [ par giom236 ] Bonjour, J'aurais besoin de modifier la couleur du crayon avec lequel je dessine dans une fenêtre graphique avec trois valeurs entières r,g,b. Quelqu changer couleur fenetre [ par victorcoasne ] Bonjour, Je m'explique : J'ai une fenetre avec un fond bleu mais quand je met une toolbar, une trackbar ou des contrôles Win32 il y a une partie gris Comment changer la couleur du text sous visual c++ 6 [ par Haykel2006 ] Pouvez vous me dire comment changer la couleur d'affichage des messages sous vc++6, avec turbo c j'utilise la fonction :  textcolor . Aussi comment re Changer couleur par un clique [Win32 sans MFC] [ par jojomillenium ] Bonjour, j'aimerai pouvoir changer la couleur de fond d'un static, ou meme d'un element picture (mon but et juste d avoir un carré rempli d'une couleu


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales