Bitmap qualitativ skalieren



  • gude

    also hab das problem das ich ein sehr großes bmp (2800x2200 Pixel) im speicher habe dieses dann jedoch um einiges kleiner machen will... ungefähr: 400x600 also hinzukommt dass ich noch was wegschneide (was ja uninteressant ist). Das Problem was ich jetzt habe ist dass das Bild danach sehr unschön aussieht... benutze im mom die StretchBlt aus der GDI

    Graphics::TBitmap *myBMP,*myDefault;
    ...
    HDC hdcSource,hdcDest;
    
    hdcSource = CreateCompatibleDC(NULL);
    hdcDest = CreateCompatibleDC(NULL);
    
    SelectObject(hdcSource,myBMP->Handle);
    SelectObject(hdcDest,myDefault->Handle);
    
    StretchBlt(hdcDest,0,0,myBMP->Width*multicator,myBMP->Height*multicator,hdcSource,0,0,myBMP->Width,myBMP->Height
    		,SRCCOPY);
    
    DeleteDC(hdcSource);
    DeleteDC(hdcDest);
    

    kann mir vielleicht irgendwer weiterhelfen? Es müssen nur stichwörter sein die mich weiterbringen ^^

    MfG
    Neal





  • ich denk mal schon dass ich GDI+ verwenden könnte ^^

    das prob ist nur wenn ich die gdiplus.h einfüge:

    [C++ Fehler] GdiplusGraphics.h(34): E2015 Mehrdeutigkeit zwischen 'Gdiplus::Graphics::Graphics(void *)' und 'Gdiplus::Graphics::Graphics(void *,int)'
    

    hab mich umgegeschaut wie ich das prob wieder wegbekomm das einzige was ich bis jetzt gefunden habe:

    NO_STRICT #define muss bei der GdiPlus-Bibliothek ausgeschaltet sein

    kann mir jemand sagen wie ich das jetzt wieder mache? verwende bds 06

    und vielen dank Vertexwahn 😉

    gruß

    neal



  • k bin einen schritt weitergekommen: http://www.c-plusplus.net/forum/viewtopic-var-t-is-187585.html

    jetzt hatte ich aber noch ein TBitmap drin... *kopfschüttel*

    ...
    Graphics::TBitmap *myBMP=new Graphics::TBitmap();
    ...
    

    und jetzt meckert der schon wieder...:

    [C++ Fehler] Unit1.cpp(75): E2015 Mehrdeutigkeit zwischen 'Graphics' und 'Gdiplus::Graphics'
    

    ich weiß ich bin ein schwerer fall ^^

    mfg



  • Dann nimm dein "using namespace Gdiplus" raus und qualifiziere alles nötige mit "Giplus::".



  • k vielen vielen dank!!!

    sowas triviales... und ich verzweifel...

    also, da ich darauf nicht selbst gekommen bin nochmal tausend dank! 🙂

    mfg
    neal


Anmelden zum Antworten