Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1336 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pour les pros de gdi+, j'ai vraiment besoin d'aide...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pour les pros de gdi+, j'ai vraiment besoin d'aide...

n°883797
LCPROG
Bande d'Ours
Posté le 27-10-2004 à 12:14:16  profilanswer
 

Salut tout le monde. J'ai un très gros souci avec un projet que je développe. Je cherche depuis deux semaine sans aucun résultat positif.
 
J'ai besoin de convertir une image bmp 24 bits en niveau de gris. J'ai une fonction qui me fait très bien ça sauf que... Ca me génère une image avec une palette de couleur de 32 bits!!! Je suis complètement perdu. J'aimerai donc pouvoir générer une bitmap avec un format de pixel codé sur 8bits.  
 
J'ai exactement le même problème avec une fonction qui me génère du noir et blanc... je me retrouve avec une image bmp 32 bits...
 
Si quelqu'un pouvait m'aider ne serait ce qu'un peu. Je galère vraiment trop là.  
 
Merci d'avance.
 
Loïc
 
PS: voici ma fonction de convertion d'image en niveau de gris:
 
je passe le handle de ma bitmap 24 bits en paramètre. (image créée avec gdpcreateBitmapFromFile)
la fonction me retourne un handle vers une nouvelle image niveau de gris (mais c'est de la palette 32bpp :(  )...
 
 
 
 
Public Function SetGreyScale(nNativeImage as long) As Long
 
 
      Dim nGraphics As Long
      Dim nNewBmp As Long
      Dim nHeight As Long
      Dim nWidth As Long
      Dim imgAttr As Long, clrMatrix As ColorMatrix
      Dim sngContrast As Single  
     
 
     sngContrast = 0.35
     nHeight = GetHeight
     nWidth = GetWidth
 
 
     clrMatrix.m(0, 0) = sngContrast: clrMatrix.m(1, 0) = sngContrast: clrMatrix.m(2, 0) = sngContrast: clrMatrix.m(3, 0) = 0: clrMatrix.m(4, 0) = 0
     clrMatrix.m(0, 1) = sngContrast: clrMatrix.m(1, 1) = sngContrast: clrMatrix.m(2, 1) = sngContrast: clrMatrix.m(3, 1) = 0: clrMatrix.m(4, 1) = 0
     clrMatrix.m(0, 2) = sngContrast: clrMatrix.m(1, 2) = sngContrast: clrMatrix.m(2, 2) = sngContrast: clrMatrix.m(3, 2) = 0: clrMatrix.m(4, 2) = 0
     clrMatrix.m(0, 3) = 0: clrMatrix.m(1, 3) = 0: clrMatrix.m(2, 3) = 0: clrMatrix.m(3, 3) = 1: clrMatrix.m(4, 3) = 0
     clrMatrix.m(0, 4) = 0: clrMatrix.m(1, 4) = 0: clrMatrix.m(2, 4) = 0: clrMatrix.m(3, 4) = 0: clrMatrix.m(4, 4) = 1
 
 
     Call GdipCreateImageAttributes(imgAttr)
     Call GdipSetImageAttributesColorMatrix(imgAttr, ColorAdjustTypeDefault, True, clrMatrix, ByVal 0, ColorMatrixFlagsDefault)
     
     
     Call GdipGetImageGraphicsContext(nNativeImage, nGraphics)
     Call GdipCreateBitmapFromGraphics(nWidth, nHeight, nGraphics, nNewBmp)
     Call GdipDeleteGraphics(nGraphics)    ' Cleanup so we can reuse the variable
     Call GdipGetImageGraphicsContext(nNewBmp, nGraphics)
     Call GdipDrawImageRectRectI(nGraphics, nNativeImage, 0, 0, nWidth, nHeight, 0, 0, nWidth, nHeight, UnitPixel, imgAttr)
     Call GdipDisposeImageAttributes(imgAttr)
     GdipDisposeImage nNativeImage
     nNativeImage = nNewBmp
     GdipDeleteGraphics nGraphics
     Call GdipDisposeImage(nNativeImage)
     
  SetGreyScale = nNewBmp
End Function
 
 

mood
Publicité
Posté le 27-10-2004 à 12:14:16  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  pour les pros de gdi+, j'ai vraiment besoin d'aide...

 

Sujets relatifs
Besoin d'info sur pattern Chain of Responsibilityrequest aide sur ITypeLib, ITypeInfo, IE et WE
Aide Base de donnée Php/Txtoperateur = besoin d'aide pour le comprendre
Aide sur findfirst findnextBesoin d'un pro d'ACCESS, réalisation base de données...
[CSS]Besoin D'aide[HTML/Javasript] Aide pour un compte à rebours SVP
Plus de sujets relatifs à : pour les pros de gdi+, j'ai vraiment besoin d'aide...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR