AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Radieren/Freilegen von Bildern mit FMX

Ein Thema von paul.kunig · begonnen am 23. Jul 2019 · letzter Beitrag vom 28. Aug 2019
Antwort Antwort
paul.kunig

Registriert seit: 25. Sep 2017
42 Beiträge
 
Delphi 10.3 Rio
 
#1

Radieren/Freilegen von Bildern mit FMX

  Alt 23. Jul 2019, 16:18
Delphi-Version: 10 Seattle
Hallo Leute,

wie sollte ich vorgehen um folgendes Ziel zu erreichen.
Ich möchte ein Bild farbig überdecken. Beim Überfahren des farbig überdeckten Bildes soll das Bild an den überfahrenen Positionen sichtbar werden. Wenn dass Bild zu einem bestimmten Prozentsatz freigelegt ist, soll das Bild komplett freigelegt werden.

Nun stellen sich mir folgende Fragen:
Mit welchen Komponenten wird das Ganze realisiert?
Welche Vorgehensweise ist die beste, welche die einfachste?

Soll z.B. ein TImage benutzt und dieses mit dem eigenen Canvas übermalt werden oder ist es sinnvoller zwei Bitmaps übereinander zu legen oder doch eine Paint-Komponente auf der man radieren kann?

Wie wird gewährleistet, dass beim Neuzeichnen die bereits freigelegten Bereiche nicht wieder übermalt werden?
Muss eine Matrix angelegt werden, in der die bereits freigelegten Bereich gespeichert werden?

Oder sollte ich ganz anders vorgehen?

Ich bitte um Input.

Gruß
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 23. Jul 2019, 16:29
https://github.com/zhaoyipeng/graphics32-for-Firemonkey
Markus Kinzler
  Mit Zitat antworten Zitat
paul.kunig

Registriert seit: 25. Sep 2017
42 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 23. Jul 2019, 17:29
Danke für den Link mkinzler.

Allerdings sehe ich die Lösung nicht darin.

Ich möchte das Bild nicht verformen, sondern freilegen oder soll das heißen, dass ich mein Vorhaben nicht mit den in Delphi vorhandenen FMX-Komponenten umsetzen kann, sondern unbedingt die Graphic32 Bibliothek dazu benötige?

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 23. Jul 2019, 17:44
Nein das geht auch mit den in Delphi vorhandenen Mitteln.
Hast du denn schon mal was probiert?
Deine Gedanken oben klingen ja grundlegend gar nicht so schlecht.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
paul.kunig

Registriert seit: 25. Sep 2017
42 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 23. Jul 2019, 17:53
Ich habe ein Image mit Bild benutzt und eine schwarze Zeichenoberfläche darüber gelegt.

Probleme kommen auf beim Freilegen der bereits besuchten Flächen, da beim Neuzeichnen natürlich die ganze Zeichenfläche neu gezeichnet wird.

Daher meine Überlegung, ob mein Ansatz überhaupt der Richtige ist.

Geändert von paul.kunig (23. Jul 2019 um 17:56 Uhr)
  Mit Zitat antworten Zitat
striderx

Registriert seit: 11. Feb 2007
Ort: Bergisch Gladbach
206 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 23. Jul 2019, 19:11
Du bist ja äußerst sparsam mit Informationen ...

Interessant wäre z. B., wie groß die Bilder sind und was genau dein Problem ist (Flackern beim Refresh?).

Ich würde es so machen: Die schwarze Fläche ins Image, das aufzudeckende Bild in ein Bitmap. Dann im MouseMove-Event abfragen, ob die linke Maustaste gedrückt ist und falls das der Fall ist, mit CopyRect einen Block aus dem Hintergrundbild in das Image kopieren und danach einen Refresh auslösen. Nicht vergessen, beim Image doublebuffered auf true zu stellen.

Warum ein Block? Weil du wahrscheinlich keine kontinuierliche Änderung der Mauskoordinaten mitbekommst und ansonsten auch ziemlich viel 'kratzen' musst, wenn du das nur pixelweise machst.

Das ist jetzt aus Sicht der VCL geschrieben, aber das Prinzip müsste für FMX auch gelten.

Geändert von striderx (23. Jul 2019 um 19:19 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:40 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