Dans l'extrait de code ci-dessous, j'essaie de récupérer les valeurs RVB d'un pixel dans Visual C++, puis de rétablir les mêmes valeurs RVB. même pixel. c'est-à-dire que c'est juste un test. Cependant quand je le fais l'image résultante est semblable mais les couleurs sont fausses/off. L'image résultante semble manquer totalement les pixels de couleur jaune de l'image originale. Pourquoi est-ce que je ne récupère pas la même image après ça? Toute aide sera très appréciée. MerciObtention d'une valeur RVB à partir d'un pixel et définition des valeurs rgb sur le même pixel
BYTE *pbBitmap;
HBITMAP hDestBitmap = CreateDIBSection(memDC1, &bi, DIB_RGB_COLORS,(void**)&pbBitmap, NULL, 0);
if (hDestBitmap){
SelectObject(DestDC2, hDestBitmap);
BitBlt(DestDC2, 0, 0, nX, nY, memDC1, 0, 0, SRCCOPY);
RGBQUAD *pRGB;
LONG nPixels;
for (pRGB = (RGBQUAD *)pbBitmap, nPixels = (nX * nY); nPixels > 0; ++pRGB, --nPixels){
ULONG* pSrc =(ULONG*)pRGB;
ULONG nRed = GetRValue(*pSrc);
ULONG nGreen = GetGValue(*pSrc);
ULONG nBlue = GetBValue(*pSrc);
pRGB->rgbRed=nRed;
pRGB->rgbGreen=nGreen;
pRGB->rgbBlue=nBlue;
}
CRect rctPicture2;
m_Picture2.GetWindowRect(&rctPicture2);
ScreenToClient(&rctPicture2);
dc.SetStretchBltMode(COLORONCOLOR);
StretchBlt(dc,rctPicture2.left,rctPicture2.top,rctPicture2.Width(),rctPicture2.Height(),DestDC2,0,0,1152,864,SRCCOPY);
}