![]() |
StretchBtl verhunzt die Bitmap
Liste der Anhänge anzeigen (Anzahl: 2)
Moin,
ich habe eine Grafik die ich mithilfe von Andorra2D speichere und dann als Bitmap hole:
Delphi-Quellcode:
Das Problem ist, dass wenn ich das von 48x48 auf 32x32 herunterskaliere, wird das Bild dabei irgendwie "schlechter".
bmp := TBitmap.Create;
bmp2 := TBitmap.Create; try bmp.Width := ICON_WIDTH; bmp.Height := ICON_WIDTH; AImgBuf.Texture.SaveToGraphic(bmp2); bmp2.SaveToFile(ExtractFilePath(ParamStr(0)) + AName + '.pre.bmp'); StretchBlt(bmp.Canvas.Handle, (ICON_WIDTH - w) div 2, (ICON_WIDTH - h) div 2, w, h, bmp2.Canvas.Handle, r.Left, r.Top, r.Right - r.Left, r.Bottom - r.Top, SRCCOPY); bmp.SaveToFile(ExtractFilePath(ParamStr(0)) + AName + '.post.bmp'); ilPreview.Add(bmp, nil); finally bmp2.Free; bmp.Free; end; MfG Fabian |
Re: StretchBtl verhunzt die Bitmap
Zitat:
Aus diesem Grund werden Icons z.B. in verschiedenen Grössen gespeichert. Verkleinerte Icons sind fast immer nachträglich von Hand optimiert oder sogar komplett neu designed. |
Re: StretchBtl verhunzt die Bitmap
Moin,
das war mir schon klar, aber gerade der Mittlere Teil sieht erheblich schlechter aus. Aber dann muss ich echt sehen was ich da machen kann, weil 48px sind zu viel und alles nochmal mit 32px o.O MfG Fabian |
Re: StretchBtl verhunzt die Bitmap
Hallo,
setz mal vor dem Aufruf von StretchBlt ein
Delphi-Quellcode:
Damit gibt es meistens wesentlich bessere Resultate.
SetStretchBltMode(bmp.Canvas.Handle, HALFTONE);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz