Einzelnen Beitrag anzeigen

Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#1

GDI+: Vergrößerung ohne AntiAliasing etc.

  Alt 22. Mai 2011, 15:42
Hallo Gemeinde,
vielleicht ist ja gerade ein GDI+ Experte unterwegs:
Ich möchte aus einem Image ein Teilstück vergrößert anzeigen. Das klappt ansich gut -- nur, dass mir das GDI+ leider auch so einen Anti-Aliasing Effekt dazu macht. Ich hätte gern eine einfache Vergrößerung quasi "ohne alles" -- so wie ich sie erhalten würde, wenn ich ein Bild in ein Image mit StrecthDraw laden würde.

Das ist mein Code wie ich es z.Z. mache:

Delphi-Quellcode:
  ZoomGraphics := TGPGraphics.Create(Main_Form.ZoomImage.Canvas.Handle);

  Left := ARect.Left;
  Top := ARect.Top;
  Width := ARect.Right - Left;
  Height := ARect.Bottom - Top;

  DestinationRect.Initialize(0, 0, Width * ZoomFactor, Height * ZoomFactor);
  
  ZoomGraphics.SmoothingMode := SmoothingModeNone;
  ZoomGraphics.InterpolationMode := InterpolationModeHighQualityBicubic;

  Main_Form.ZoomImage.Width := Width * ZoomFactor;
  Main_Form.ZoomImage.Height := Height * ZoomFactor;

  ZoomGraphics.DrawImage(gImage, DestinationRect,
                         Left, Top, // upper-left corner of source rectangle
                         Width, // width of source rectangle
                         Height, // height of source rectangle
                         UnitPixel);
Wie ihr seht, habe ich schon mit "SmoothingMode" und "InterpolationMode" rumgespielt -- leider ohne Erfolg.
Mein vorläufiges Ergebnis habe ich zur Demonstration hochgeladen.

Kann jemand behilflich sein?
(Ach ja, ich benutze die GDI+ Library von Erik van Bilsen -- aber das dürfte je eigentlich egal sein.)

Vielen Dank & Gruß
Jazzman
Miniaturansicht angehängter Grafiken
zoomproblem.png  
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat