Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   VCL-Bitmap Resampler (https://www.delphipraxis.net/212870-vcl-bitmap-resampler.html)

Renate Schaaf 16. Apr 2023 12:02

VCL-Bitmap Resampler
 
Nachdem mein Bitmap-Resampler im englischen Forum per Diskussion einige Verbesserungen erfahren hat, hab ich ihn mal auf GITHub hochgeladen.

https://github.com/rmesch/Repository-R.Schaaf

2 kleine Demos sind enthalten, sowie eine Doc, die erklärt wie das Skalieren von Bitmaps mit Filtern (Box, Bilinear, Bicubic, Lanczos) funktioniert.

Besonderheiten:
  1. Enthält eine parallele Routine, die die Skalierungszeit auf meinem System auf ca. 1/5 reduziert. Damit sind Zoom-Pans in Echtzeit möglich.
  2. Jeder Filter hat einen Default-Radius, der den gängigen Werten entspricht (z.B. wie Graphics32), aber der Radius kann beliebig verändert werden.
  3. Das Rechteck für den Bereich, der skaliert werden soll, hat Float-Werte für bessere Zooms.

Funktioniert für pf32Bit-Bitmaps. Es gibt Optionen für die Behandlung des Alpha-channels (ignorieren, unabhängig, vor-multiplizieren). Andere Filter können sehr einfach hinzugefügt werden. Unterstützt derzeit Delphi 10.x und höher.

Renate

TurboMagic 16. Apr 2023 19:38

AW: VCL-Bitmap Resampler
 
Super!
Falls du denkst, das wäre auch sinnvoll per GetIt "auslieferbar" (dann bekommt es noch mehr
Aufmerksammkeit), kann ich dir gerne zeigen wie das geht.

Renate Schaaf 16. Apr 2023 21:08

AW: VCL-Bitmap Resampler
 
Hi Turbomagic,

Danke!

Zitat:

Falls du denkst, das wäre auch sinnvoll per GetIt "auslieferbar"
Ich denke schon, wenn ich gefunden habe, wie man die globalen Variablen für die Threads loswird, ohne dass die Performance in den Keller geht.
Im Moment warte ich darauf, von irgendwem dafür ausgeschimpft zu werden. :)

..jetzt ist mir doch grad ne Idee dazu gekommen.

Renate

Renate Schaaf 19. Apr 2023 14:17

AW: VCL-Bitmap Resampler
 
Der parallele Resampler kann jetzt in mehreren gleichzeitig laufenden Threads benutzt werden. Man kann nun mehr als einen thread-pool erstellen und der parallelen Routine sagen, welchen sie benutzen soll.
Ich hab eine Demo "ThreadsInThreads" hinzugefügt, mit der man das austesten kann. Ist ein einfacher Thumbnail-Explorer. Gestern hing dieser sich noch machmal auf, wenn man das Verzeichnis zu schnell gewechselt hat, aber ich hoffe, dass das jetzt behoben ist.
Wäre sehr dankbar für eine Rückmeldung, wenn es immer noch passiert.

https://github.com/rmesch/Repository-R.Schaaf

Cheers,

Renate

Renate Schaaf 24. Apr 2023 11:22

AW: VCL-Bitmap Resampler
 
Hab inzwischen einige Verbesserungen in https://github.com/rmesch/Repository-R.Schaaf eingebaut:
  • Threads werden nicht mehr automatisch in Initialization erzeugt. Man kann InitDefaultResamplingThreads aufrufen, um sie zu initialisieren, bevor man sie benutzt, oder sie werden initialisiert beim ersten Aufruf einer parallelen Routine, was dann eine Verzögerung erzeugt. FinalizeDefaultResamplingThreads gibt sie frei. Wenn man das vergisst, werden sie in Finalization freigegeben.
  • Übergebene Bitmaps mit Alphaformat=afDefined werden jetzt korrekt skaliert, und das Ergebnis hat das gleiche Alphaformat. Der Resampler funktioniert aber am besten mit Alphaformat=afIgnored. Man sollte Alphaformat nur setzen, bevor man eine Bitmap anzeigt, um Ungenauigkeiten zu vermeiden.
  • Die Unit uTools enthält Routinen zum Umwandeln von TPngImage oder TWICImage auf TBitmap, ohne dass Alphaformat=afDefined gesetzt wird, was TBitmap.Assign in VCL.Graphics immer tut (, und was Zeitverschwendung für .jpg ist). Ein TWICImage dekodiert .jpg, .png oder .tif sehr schnell. Leider ist TWICImage.Create nicht threadsafe, also muss man es im Haupt-Thread erzeugen.
  • Es gibt einen neuen TAlphaCombineMode amTransparentColor, welcher die transparente Farbe und die transparenten Regionen beim Skalieren erhält.
  • Die Demo ThreadsInThreads macht jetzt Vorschaubilder in 2 gleichzeitigen Threads, das sollte ein guter Crashtest dafür sein, ob's denn auch threadsafe ist.
  • Code in uScale.pas wurde etwas aufgeräumt, Interface enthält jetzt nur noch das, was Benutzer wissen müssen, und mehr Kommentare wurden hinzugefügt. Außerdem habe ich 4 fast identische Routinen in eine überführt. Das kostet ein bisschen Performance, aber ich war es einfach leid.

Kritik usw. erwünscht!

Renate

Rollo62 25. Apr 2023 08:30

AW: VCL-Bitmap Resampler
 
Kritik ?
Ich wüsste nicht warum :thumb:

Vielen Dank dafür.

Renate Schaaf 25. Apr 2023 09:21

AW: VCL-Bitmap Resampler
 
Zitat:

Zitat von Rollo62 (Beitrag 1521508)
Kritik ?
Ich wüsste nicht warum :thumb:

Renate = :-D

Sinspin 25. Apr 2023 12:27

AW: VCL-Bitmap Resampler
 
Jetzt sehe ich hier schon das zweite Bildverarbeitungs Tool von Dir und habe noch immer TBitmaps2Video auf meiner Todoliste.

Ich könnte beides sicher gut gebrauchen ...

Leute aus der Foto- und Video-graphie Ecke kennen sicherlich LR-Timelapse. Was leider an eine bestimmte Software genagelt ist (die mir in diesem Leben sicher nicht mehr auf den Rechner kommt)
Das Tool wird verwendet um bei einer Sequenz von Bildern dafür zu sorgen das beim Durchblättern der Bilder der Helligkeits- und Farbverlauf fließend ist. Es also nicht flackert.

Ich hatte angefangen sowas mit Lazarus(ich brauche 64 Bit und Massen von Speicher für tausende Bilder) selber zu schreiben.
Bitmap, also RGB, ist zwar ungeeignet für die nötigen Farbmanipulationen aber mit HSV geht das ganz gut.

Danach könnte dann TBitmaps2Video ans Werk gehen und könnte aus tausenden einzelnen Bildern ein Video erstellen ohne das ich noch eine andere Software brauche.

Aktuell geht es aber einfach nicht forwärts. Nach der Arbeit ist die Lust was zu programmieren bei Null.

Renate Schaaf 25. Apr 2023 13:43

AW: VCL-Bitmap Resampler
 
Zitat:

Zitat von Sinspin (Beitrag 1521519)
LR-Timelapse.

Kenn ich nicht, guck ich mir mal an.
An TBitmap2Video ärgert mich nur, dass die Binaries und die Headers für ffMpeg inzwischen sehr alt sind. Funktionieren meiner Meinung nach gut, aber sieht doof aus.

Ich bin Rentnerin und habe im Moment total Bock auf Programmieren, und Tools zu schreiben finde ich im Moment viel befriedigender als an meiner End-Anwendung zu arbeiten. Wenn ich mir angucke, über welche Hürden man jetzt springen muss, um so ein Teil zertifiziert zu kriegen, obwohl es umsonst ist, habe ich schon gar keine Lust mehr.

TurboMagic 25. Apr 2023 18:26

AW: VCL-Bitmap Resampler
 
Was wäre das für eine End-Anwendung? Was für eine Zertifizierung?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 Uhr.
Seite 1 von 2  1 2      

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