Bild darstellen



  • danke, ich hab aber ein win32 projekt erstellt.
    Kann ich die nachträglich irgendwie dazutun?
    Oder muss ich ien neues MFC projekt starten?
    Wie deklariere ich den picture?
    Ich weiß ja nicht mal welche Variable das ist, weil sie im beispielcode nicht deklariert ist t.t



  • cximage schrieb:

    danke, ich hab aber ein win32 projekt erstellt.
    Kann ich die nachträglich irgendwie dazutun?
    Oder muss ich ien neues MFC projekt starten?
    Wie deklariere ich den picture?
    Ich weiß ja nicht mal welche Variable das ist, weil sie im beispielcode nicht deklariert ist t.t

    Ja, starte ein MFC-Projekt!

    Woher sollen wir das wissen? Könnte eine PictureBox (also CStatic) sein, die hat ne Methode SetBitmap. Könnte auch was ganz anderes sein...



  • ich kann nicht ein neues Projekt starten dann muss ich mir ne lib suchen die kein MFC braucht. Kennt zufällig wer eine wo man jpgs darstellen kann?
    (will ned direkt winapi)



  • Dem von dir geposteten Code zufolge brauchst du doch gar keine MFC. Sie werden lediglich in dem Beispiel verwendet...

    Mit Nachdenken kommt man da auch ohne MFC-Kenntnisse drauf (da könnten jetzt einige Fehler bei der Anzahl der Funktionsargumente sein, bin nicht mehr so bewandert damit):

    HDC hDC = GetDC(hWnd); // irgendein DC, entweder durch GetDC, CreateDC oder BeginPaint bekommen...bei letzterem EndPaint nicht vergessen!
    
    HBITMAP m_bitmap = NULL;
    CxImage image("myfile.png", CXIMAGE_FORMAT_PNG);
    ...
    // jetzt mach irgendwas mit der Bitmap... z.B. BitBlt 
    
    // und freigeben
    ReleaseDC(hWnd, hDC);
    DeleteObject(m_bitmap);
    


  • habs mal versucht geht aber nicht 😞
    Hab erst das jpg in bmp umgewandelt(das geht) und dann versucht darzustellen:(aufm bildschirm)

    CxImage image;
    		image.Load(Filename.c_str(), CXIMAGE_FORMAT_JPG);
    		if (image.IsValid()){
    		image.Save("image.bmp",CXIMAGE_FORMAT_BMP);
    		CxImage image1("image.bmp", CXIMAGE_FORMAT_BMP);
    		HBITMAP m_bitmap = image1.MakeBitmap(0);
    		HDC hdcMem = CreateCompatibleDC (hDC) ;
    		SelectObject (hDC, m_bitmap) ;
    		BitBlt(hDC, 0, 0, 1000, 1000, hdcMem, 0, 0, SRCCOPY);
    

    geht aber ned 😞



  • omg schrieb:

    geht aber ned 😞

    Sehr präzise Fehlerbeschreibung! 😮



  • sry, es zeigt sich halt einfach kein Bild.



  • hier noch wie ich den handle hole:

    HDC hDC = GetDC(0); // irgendein DC, entweder durch GetDC, CreateDC oder BeginPaint bekommen...bei letzterem EndPaint nicht vergessen!
    		CxImage image;
    		image.Load(Filename.c_str(), CXIMAGE_FORMAT_JPG);
    		if (image.IsValid()){
    		image.Save("image.bmp",CXIMAGE_FORMAT_BMP);
    		CxImage image1("image.bmp", CXIMAGE_FORMAT_BMP);
    		HBITMAP m_bitmap = image1.MakeBitmap(0);
    		HDC hdcMem = CreateCompatibleDC (hDC) ;
    		SelectObject (hDC, m_bitmap) ;
    		BitBlt(hDC, 0, 0, 1000, 1000, hdcMem, 0, 0, SRCCOPY);
    		DeleteDC (hdcMem) ;
    


  • habs jetzt nochma mit der WINAPI probiert!
    Der cximage teil funktioniert nur das darstellen nicht
    irgendwo muss ein fehler drin sein. das program erstellt ein fenster namens Dialog in das es dargestellt werden soll!

    hDC = GetDC(FindWindow(0, "Dialog")); // irgendein DC, entweder durch GetDC, CreateDC oder BeginPaint bekommen...bei letzterem EndPaint nicht vergessen!
    		image.Load(Filename.c_str(), CXIMAGE_FORMAT_JPG);
    		image.Save("image.bmp",CXIMAGE_FORMAT_BMP);
    		hBmp = (HBITMAP)LoadImage(NULL,"image.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    		SelectObject (hdcMem, hBmp) ;
    		BitBlt(hDC, 0, 0, 200, 200, hDC, 0, 0, SRCCOPY);
    		DeleteDC (hdcMem) ;
    		ReleaseDC(0, hDC);
    


  • CreateCompatibleDC()


Anmelden zum Antworten