Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   SetStretchBltMode(...) für DELPHI unter LINUX (https://www.delphipraxis.net/196581-setstretchbltmode-fuer-delphi-unter-linux.html)

bernhard_LA 31. Mai 2018 21:57

SetStretchBltMode(...) für DELPHI unter LINUX
 
womit sollte man die Funktionen

SetStretchBltMode (...)

StretchBlt (..)

ersetzen wenn man code benötigt der sowohl unter LINUX als auch unter Windows funktioniert ?

Harry Stahl 31. Mai 2018 23:09

AW: SetStretchBltMode(...) für DELPHI unter LINUX
 
Wenn man will, kann man sich auch unter FMX auf die Pixelebene begeben und Bitmaps auf diese Weise manipulieren (um etwa einen Alpha-Kanal eines transparenten Bitmpas zu manipulieren). Das ist aber meistens nicht notwendig, da FMX schon einiges an Grafik-Funktionalität mitliefert ( ein wenig Eigenwerbung - in meinem aktullen FireMonkey-Buch findest Du unter Kapitel 6 einführende Informationen zur Grafikbearbeitung in FMX).

Einen Ersatz von SetStretchBltMode kenne ich auch nicht, aber wenn Du eine Grafik skalieren möchtest, kannst Du vom TCanvas-Object die Funktion

Delphi-Quellcode:
DrawBitmap(const ABitmap: TBitmap; const SrcRect, DstRect: TRectF; const AOpacity: Single; const HighSpeed: Boolean);
verwenden.

Auch bietet das Bitmap-Objekt selber schon einiges an Funktionalität (z.B. Grafik um 90 Grad drehen:

Delphi-Quellcode:
Bitmap.rotate (90)
)

EWeiss 31. Mai 2018 23:21

AW: SetStretchBltMode(...) für DELPHI unter LINUX
 
Zitat:

SetStretchBltMode setzt den Vergrößerungsmodus für die Bitmap eines Gerätekontextes. Der Vergrößerungsmodus legt fest, wie Pixel entfernt werden, wenn eine Bitmap verkleinert werden soll. Bitmaps, die vergrößert werden, fügen einfach passende Pixel zwischen die bereits bestehenden ein. Der Vergrößerungsmodus ist eine Eigenschaft des Gerätekontextes und bleibt gültig, bis er Gerätekontext gelöscht oder ein neuer Vergrößerungsmodus gesetzt wird.
eventuell StretchDraw als ersatz.. keine Ahnung ob Linux das aktzeptiert.
Es wird aber nicht so weich zeichnen wie es SetStretchBltMode tut.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz