Einzelnen Beitrag anzeigen

Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#1

Bild in der Mitte des Canvas

  Alt 29. Mai 2005, 20:35
Ich ändere die Größe eines Bitmaps, dabei möchte ich die Seitenverhältnisse beibehalten. Wenn das Bild dann verkleinert ist möchte ich es in die Mitte des Canvas setzen, da funktioniert aber nicht richtig. Ich poste hier mal den Quellcode, ich such nämlich schon länger den Fehler.

Delphi-Quellcode:
.
.
.
var
  iPicHeight, iPicWidth: integer;
  eThumbHeight, eThumbWidth: TEdit;
  Bmp: TBitmap;
  Image: TImage;
.
.
.
  Image.Picture.LoadFromFile(...);
  Bmp.Assign(nil);
  Bmp.Height := StrToInt(eThumbHeight.Text);
  Bmp.Width := StrToInt(eThumbWidth.Text);
  iPicHeight := Bmp.Height;
  iPicWidth := Bmp.Width;
  if Image.Picture.Height > Image.Picture.Width then
    iPicWidth := round(Bmp.Width * (Image.Picture.Width / Image.Picture.Height))
  else
    iPicHeight := round(Bmp.Height * (Image.Picture.Height / Image.Picture.Width));

  Bmp.Canvas.StretchDraw(Rect((Bmp.Width-iPicWidth) div 2, (Bmp.Height-iPicHeight) div 2, iPicWidth, iPicHeight), Image.Picture.Graphic);
.
.
.
Die Bilder sehen meißt so aus das sie ein bisschen weiter links, bzw ein bisschen weiter oben sind. Sie sind aber nie in der Mitte.
Michael N.
  Mit Zitat antworten Zitat