Registriert seit: 23. Jan 2008
3.685 Beiträge
Delphi 2007 Enterprise
|
Re: Verlustfrei Bitmap verkleinern
7. Okt 2008, 19:48
Durch Verkleinerung hast du immer Verluste, egal mit welchem Verfahren. Der einzige Weg den ich sähe, wäre es wenn du dir die originale Version in ursprünglicher Größe im Speicher behälst, und darüber die Maske erzeugst, die du dann verkleinern kannst.
Ein Problem kann dabei jedoch werden, dass Regions nur 1-bittig sind, d.h. wenn du diese dann auf Bilder anwendest die du mit was besserem als Nearest-Neighbour verkleinert hast, kannst du eben wieder Ränder erhalten.
Wenn du aber ohne hin schon mit der GR32 arbeitest, könntest du es evtl. so lösen, dass du im Original bei Pixeln mit deiner Transparenzfarbe den Alphakanal auf 0 setzt, und anschließend mit beliebigem Kernel verkleinerst. Dann sollte nämlich der Alphakanal gleich passend mit skaliert werden, und du kannst diesen dann zum Zeichnen auswerten. Regions fallen hierbei dann aber komplett raus.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
|