CImage Graustufenbild 8-Bit

titanic

Mitglied
Hallo Forum,

Es gibt bestimmt eine einfache Lösung, aber ich komme nicht auf sie.
Ich erzeuge ein CImage-Objekt :

m_OrigImage.Load(dlg.GetFileName());

Wie kann ich das Objekt, das aus einer beliebigen Image-Datei ausgelesen wird (auch 24-Bit pro Pixel), in einer 8-Bit Bitmap umwandeln.
 
Hilfe!!

folgendes hatte ich mir überlegt,

CImage m_OrigImage; //24-Bit Image
hResult = m_OrigImage.Load(dlg.GetFileName());
....
CImage cloneImage;
cloneImage.Create(m_OrigImage.GetWidth(), m_OrigImage.GetHeight(), 8); //8-Bit
register int x, y, res;
register LPBYTE cloneByte;
register LPBYTE origByte;

for (x = 0; x < m_OrigImage.GetWidth(); x++)
{
for (y = 0; y < m_OrigImage.GetHeight(); y++)
{
origByte = LPBYTE((m_OrigImage).GetPixelAddress(x,y));
res = ((*origByte)+(*(origByte+1))+(*(origByte+2)))/3;
cloneByte = LPBYTE((cloneImage).GetPixelAddress(x,y));
(*cloneByte) = res;
}
}


wie kopiere ich die restlichen Daten?
 
Zurück