tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Endurion
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
332
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von SCIPIO-AEMILIANUS
    SCIPIO-AEMILIANUS SCIPIO-AEMILIANUS ist offline aka DonMahallem
    Registriert seit
    Mar 2007
    Ort
    Saxonburg(Pa)
    Beiträge
    375
    Ich hab im moment das Problem das mein Code ein Bild verkleinern soll. Das war jetzt nun grad nicht die Schwierigkeit dank MSDN und Internet, jedoch stört mich jetzt, dass es stark verminderter Farbzahl gespeichert wird. Mein Code sieht aus wie folgt:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
        CImage img;
        img.Load(L"D:\\source.jpg");
     
        CDC* dc=GetDC();
        CDC MemDC;
        MemDC.CreateCompatibleDC(dc);
        CBitmap Bmp;
        Bmp.CreateCompatibleBitmap(dc,200,150);
        CBitmap *pOldBitmap = MemDC.SelectObject(&Bmp);
     
        img.StretchBlt(MemDC,0,0,200,150,0,0,img.GetWidth(),img.GetHeight(),SRCCOPY);
     
        dc->BitBlt(0,0,200,200,&MemDC,0,0,SRCCOPY);
     
        MemDC.SelectObject(pOldBitmap);
     
        CImage Iage;
        Iage.Attach((HBITMAP)Bmp.Detach());
     
        Iage.Save(L"D:\\image.jpg");

    Ich hab jetzt schon ein Weilchen gegooglet, war jedoch erfolglos.
    Wie oder was mach ich falsch?
     
    MFG Scipio
    Ein Danke für hilfreiche Antworten ist gern gesehen.

  2. #2
    Avatar von SCIPIO-AEMILIANUS
    SCIPIO-AEMILIANUS SCIPIO-AEMILIANUS ist offline aka DonMahallem
    Registriert seit
    Mar 2007
    Ort
    Saxonburg(Pa)
    Beiträge
    375
    So ein Stück weitergekommen bin ich in der Findung des Fehlers:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
        CImage img;
        img.Load(L"D:\\source.jpg");
     
        CDC* dc=GetDC();
        CDC MemDC;
        MemDC.CreateCompatibleDC(dc);
        CBitmap Bmp;
        Bmp.CreateCompatibleBitmap(dc,200,150);
        CBitmap *pOldBitmap = MemDC.SelectObject(&Bmp);
     
        img.StretchBlt(MemDC,0,0,200,150,0,0,img.GetWidth(),img.GetHeight(),SRCCOPY); //<=Das verkleinern verursacht den Fehler
     
        dc->BitBlt(0,0,200,200,&MemDC,0,0,SRCCOPY);
     
        MemDC.SelectObject(pOldBitmap);
     
        CImage Iage;
        Iage.Attach((HBITMAP)Bmp.Detach());
     
        Iage.Save(L"D:\\image.jpg");

    Die markierte Zeile ist verantwortlich für den Qualitätsverlust. Was kann ich dagegen machen?
     
    MFG Scipio
    Ein Danke für hilfreiche Antworten ist gern gesehen.

  3. #3
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Ah, probier mal SetStretchBltMode mit COLORONCOLOR.
    SCIPIO-AEMILIANUS bedankt sich. 

  4. #4
    Avatar von SCIPIO-AEMILIANUS
    SCIPIO-AEMILIANUS SCIPIO-AEMILIANUS ist offline aka DonMahallem
    Registriert seit
    Mar 2007
    Ort
    Saxonburg(Pa)
    Beiträge
    375
    Ahhh, so isses schön.
    Vielen Dank.
     
    MFG Scipio
    Ein Danke für hilfreiche Antworten ist gern gesehen.

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 03.08.10, 01:18
  2. Datum wird falsch gespeichert
    Von Steusi im Forum PHP
    Antworten: 5
    Letzter Beitrag: 06.11.08, 08:42
  3. 0.10 wird als 0.1 in Datenbank gespeichert
    Von megapreisbrecher im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 06.11.06, 09:03
  4. wo wird ICQ history gespeichert?
    Von stuhli im Forum Internetkommunikation
    Antworten: 3
    Letzter Beitrag: 15.10.05, 10:54
  5. Wo wird das Thumbnail gespeichert?
    Von Sebastian Wramba im Forum PHP
    Antworten: 3
    Letzter Beitrag: 30.03.03, 22:08