Einzelnen Beitrag anzeigen

Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#1

Icon to Bitmap: StrechDraw schneidet Bereiche ab

  Alt 28. Jan 2004, 16:06
Hallo zusammen! Ihr seht mich wiedermal ratlos. Ich wollte mir nur auf die schnelle ein kleines Prog schreiben, das alle meine Icons Files in Bitmaps umwandelt und dabei auch die Größe verändert. Ich hab dazu hier in der DP den Code hier gefunden.

Delphi-Quellcode:
function IconToBitmap(Icon: TIcon; NewHeight, NewWidth : Integer): TBitmap;
begin
  Result := TBitmap.Create;
  try
    Result.Width := NewWidth;
    Result.Height := NewHeight;
    Result.Canvas.StretchDraw(Rect(0,0,NewWidth,NewHeight),Icon);
  except
  .
  .
  .
Der Original Code verwendet allerdings "Draw" und nicht StretchDraw. Ich hab ihn nur etwas angepasst, damit auch die neuen Maße berücksichtigt werden.

Jetzt zu meinem Problem: Das ganze funktioniert zwar, aber leider nur teilweise. Das Bitmap wird erstellt, aber das Icon wird nicht verkleinert, sondern nur der Bereich außen drum. Das heißt, der Rest der nicht in den angegebenen Bereich passt, wird einfach abgeschnitten.

In der OH steht nur:

Zitat:
Mit StretchDraw können Sie eine Grafik genau in ein angegebenes Reckteck einpassen. StretchDraw ruft die Methode Draw der Grafik auf. Auf welche Weise die Grafik in das Rechteck eingepasst wird, hängt vom jeweiligen Grafikobjekt ab. Unter Umständen ändern sich dabei der Vergrößerungsfaktor und/oder das Seitenverhältnis.
Kann mir da vielleicht wer weiterhelfen? Vergrößert StretchDraw etwa nur?


Danke, man liest sich, Stanlay

Noch zur Ergänzung: Wenn ich das ganze größer mache, als das Original Icon, ist in dem Bitmap einfach nur eine weiße Fläche und das Original Icon in seiner normalen Größe zu sehen. Ich hoffe, man kann sich das vorstellen.
  Mit Zitat antworten Zitat