Problem beim anzeigen von JPGs
-
Hallöchen zusammen!
Für die Darstellung der Jpg-Bilder nutze ich die Klasse aus der FAQ. Wenn ich nun ein Bild anzeigen lasse von einer größe 1024*768 sieht das wie folgt aus
|----------|---| | das bild | w | | | e | | | i | | | ß | |----------| | | weißer rand | |--------------|
Im Debugger gibt er mir für höhe und breite die richtige Daten an, aber wenn er dann das Bild anzeigt, hab ich diesen weißen rand??
so lasse ich das Bild anzeigen:
void CPCCView::OnDraw(CDC* pDC) { CPCCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if(!m_picLoad) { //Stift erstellen und dem DC zuweisen pen.CreatePen(PS_DASHDOTDOT, 1, RGB(200, 200, 200)); pDC->SelectObject(&pen); //Bild laden und anpassen if(!m_Image->Load(pDoc->GetPathName())) MessageBox("Bild konnte nicht geladen werden!", "Achtung", MB_OK); if(!m_Image->UpdateSizeOnDC(pDC)) MessageBox("Originalgröße konnte nicht festgestellt werden!", "Achtung", MB_OK); //Vertikale Scrollbar anpassen, positionieren und neuzeichnen si.nMax = m_Image->m_Height; si.nPage = m_Image->m_Height/2; this->SetScrollInfo(SB_VERT, &si, TRUE); //Horizontale Scrollbar anpassen, positionieren und neuzeichnen si.nMax = m_Image->m_Width; si.nPage = m_Image->m_Width/2; this->SetScrollInfo(SB_HORZ, &si, TRUE); m_picLoad = true; //Dateinamen speichern und in txt umwandeln name = pDoc->GetPathName(); int pos = name.find(".", 0); name.erase(pos+1, 3); name += "txt"; } //Bild anzigen // if(!m_Image->Show(pDC, CPoint(0,0), CPoint(m_Image->m_Width, m_Image->m_Height), 0,0)) // MessageBox("Bild konnte nicht angezeigt werden!", "Achtung", MB_OK); if(!m_Image->Show(pDC, CRect(0, 0, m_Image->m_Width, m_Image->m_Height))) MessageBox("Bild konnte nicht angezeigt werden!", "Achtung", MB_OK); }
-
Vielleicht ist der Mapping Mode des DC auf Zoll, Meter oder Briefkästen (?! ) eingestellt.
Mach ma:pDeinDC->SetMapMode(MM_TEXT);
Dein Programm wird dann angewiesen jeden Koordinaten-Wert in Ein-Pixel Einheiten abzubilden.