Picture Control Größe & Pixelwerte eines bmp ändern
-
Hey,
ich bastel gerade wieder an einer Dialog-Application, bei der ich mehrere Bilder zur Auswahl habe, die ich gern ersteinmal resized in meiner PictureControl anzeigen würde.
m_Bmp1.LoadBitmapW(IDB_BMP111); m_Bmp1.SetBitmapDimension(3, 2); m_ctlP1.SetBitmap(m_CBmpOff);Das Resizen mit SetBitmapDimension scheint aber so wohl nicht zu funktionieren. Wie lautet die richtige Funktion bzw. gibt es eine für das Picture Control Element?
Wie kann ich einzelne Werte eines Pixels verändern bzw. abfragen? Ich will gern so Sachen wie Schwellwert und Gauss-Filter umsetzen...
Grüße
-
Ok, Problem 1 gelöst.
CRect rect; m_CBmpOff.LoadBitmapW(IDB_BMP111); m_ctlP1.GetWindowRect(rect); m_ctlP1.SetBitmap(m_CBmpOff); m_ctlP1.MoveWindow(rect.TopLeft().x, rect.TopLeft().y, 100, 75);Jetzt würde ich nur noch gern wissen, wie ich px-Werte verändern und auslesen kann.
-
Auch hinbekommen.
CBitmap Dummy; MyLoadBitmapW(Dummy); //negative const COLORREF COLORTOREPLACE = RGB(0,0,0); BITMAP bmi; Dummy.GetBitmap(&bmi); const COLORREF white = RGB(255, 255, 255); //ASSERT((bmi.bmPlanes == 1) && (bmi.bmBitsPixel == 32)); //formatcheck int c = bmi.bmHeight * bmi.bmWidthBytes; DWORD* pBits = new DWORD[c]; Dummy.GetBitmapBits(c, pBits); for (int y=0; y< bmi.bmHeight; y++) { for (int x=0; x< bmi.bmWidth; x++) { int i = y* (bmi.bmWidthBytes/4) + x; pBits[i] = white-pBits[i]; } } Dummy.SetBitmapBits(c, pBits); delete[] pBits; //bitmap als brush verwenden Invalidate(); m_ctlP1.SetBitmap(Dummy); Dummy.DeleteObject();
-
Andere Frage:
Wie sind die RGB() - Werte bei einem monochronem Bitmap, wo BitsPixel 1 ist?