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

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 23. Jul 2019, 19:28
Hallo striderx,

danke für deine Antwort.

Ich habe extra die Informationen so gering wie möglich gehalten, damit keiner mit gegebenen Situationen arbeitet, sondern frisch seine Ideen, ohne Suggestion, rein bringt.


Zu meinem Problem:
Ich versuche momentan einfach die besuchten Pixel andersfarbig darzustellen. Jedoch werden diese beim Neuzeichnen der schwarzen Oberfläche immer wieder gelöscht, logisch da neugezeichnet wird.

Was heißt "schwarze Fläche ins Image"?
Hier im Forum suchenCopyRect wird von FMX nicht unterstützt?
Hier im Forum suchenDoubleBuffered gibt es in Delphi 10 Seattle nicht mehr.

Wie du schon selber sagst, gilt das für die VCL.
Allerdings benötige ich das Ganze in oder mit FMX.

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

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

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 23. Jul 2019, 19:51
>>Jedoch werden diese beim Neuzeichnen der schwarzen Oberfläche immer wieder gelöscht, logisch da neugezeichnet wird.<<

Deswegen solltst du die schwarze Fläche erst ändern und dann einen Refresh auslösen.


>>Was heißt "schwarze Fläche ins Image"? <<

Dass das im Image angezeigte Bild am Anfang komplett schwarz ist.


>>Hier im Forum suchenCopyRect wird von FMX nicht unterstützt?<<

Könnte sein, dass das unter FMX CopyFromBitmap ist.


>>Hier im Forum suchenDoubleBuffered gibt es in Delphi 10 Seattle nicht mehr.<<

Das ist in der VCL auch keine Eigenschaft von tImage. Aber wahrscheinlich brauchst du das eh nicht, weil FMX m. W. Hardware-Beschlenigung nutzt.
  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, 21:08
Zitat:
Deswegen solltest du die schwarze Fläche erst ändern und dann einen Refresh auslösen.
Was macht das für einen Unterschied. Beim erneuten Refresh wird wieder alles neugezeichnet. Also Zeichenfläche wieder schwarz(Ich arbeite nicht mit MausKlick, sondern mit einem Timer).

Schwarzes Bild(jpg, bmp, gif) ins Image laden? Meinst du ein schwarzes z.B. Jpeg erstellen und dann ins Image laden?

CopyfromBitmap sehe ich mir an. Damit kann man einen Bereich selektieren.

Danke.

Könnte man nicht die Transparenz des Image/Bitmap/geladenen Bildes beim Überfahren (z.b. mit der Maus) von Transparent auf Nicht Transparent wechseln ohne das gesamte Image/Bitmap/Bild nicht transparent zu setzen?
  Mit Zitat antworten Zitat
striderx

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

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 23. Jul 2019, 21:47
<<Was macht das für einen Unterschied. Beim erneuten Refresh wird wieder alles neugezeichnet.<<

Das ist der entscheidende Unterschied. Neu gezeichnet wird dann eben nicht ein komplett schwarzes Bild sondern ein Bild, auf dem bereits die entsprechenden Stellen freigelegt worden sind.


>> Also Zeichenfläche wieder schwarz(Ich arbeite nicht mit MausKlick, sondern mit einem Timer).<<

Du schreibst doch selbst, dass du mit der Maus über das Image fährst und die Stellen unter dem Mauszeiger freilegen willst. Was machst du denn in dem Timer-Event?


>>Schwarzes Bild(jpg, bmp, gif) ins Image laden? Meinst du ein schwarzes z.B. Jpeg erstellen und dann ins Image laden?<<

Nein,. du brauchst kein Bild zu laden. Wie ich gerade gelesen habe, kann man in FMX nicht direkt auf den Canvas eines Images zeichnen. Du brauchst also eine Hilfsbitmap, die du am Anfang schwarz ausmalst. Auf diese Bitmap überträgst du dann jeweils die entsprechenden Stellen des 'bunten' Bildes (es wird also immer bunter) und weist die so geänderte Hilfsbitmap dem Image zu.


>>CopyfromBitmap sehe ich mir an. Damit kann man einen Bereich selektieren.<<

Und kopieren.


>>Könnte man nicht die Transparenz des Image/Bitmap/geladenen Bildes beim Überfahren (z.b. mit der Maus) von Transparent auf Nicht Transparent wechseln ohne das gesamte Image/Bitmap/Bild nicht transparent zu setzen?<<

An den Stellen, an denen das 'bunte' Bild rüber kopiert worden ist, ist das schwarze Bild ja zu 100 % transparent.
  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, 22:04
Langsam gerät die Sache außer Kontrolle.

Das mit der Maus war in meinem letzten Post lediglich eine Möglichkeit. Ich arbeite mit einem Timer, der in bestimmten Abständen etwas freilegen soll.

Das mit der Transparenz war eine Idee, die dieses Hin- und Herkopieren vermeiden/ersetzen sollte, so in dem Sinn Fläche erreicht Image.Teilbereich.Opacity:=1 .

Werde nun erst einmal CopyfromBitmap ausprobieren und mich später noch einmal melden.

Danke bis hierher.
  Mit Zitat antworten Zitat
paul.kunig

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

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 29. Jul 2019, 09:50
Hallo,

habe die Methode Hier im Forum suchenCopyfromBitmap ausprobiert.
Scheint die Richtige zu sein.

Zum Testen habe ich ein normales Foto.jpg und ein Schwarzes.jpg verwendet.

Erstelle ich allerdings ein Bitmap zur Laufzeit und färbe die Zeichenfläche(Canvas) schwarz, funktioniert es nicht mehr.

Die Zeichenfläche bleibt schwarz.

Oder muss ich das Bitmap zur Laufzeit erzeugen, schwarz färben, abspeichern und es beim Beenden des Programmes wieder von der Festplatte löschen?

Gruß
  Mit Zitat antworten Zitat
striderx

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

AW: Radieren/Freilegen von Bildern mit FMX

  Alt 29. Jul 2019, 10:50
Du erstellst beide Bitmaps zur Laufzeit, färbst die eine eimalig Schwarz und lädst in die andere das Foto. Also nix mit speichern.

Dann kopierst du jeweils die entsprechenden Teile aus der Foto-Bitmap in die erste Bitmap und zeigst die so gänderte Bitmap in dem Image an an.


Wenn du mal etwa Code zeigen würdest, könnte man dir vielleicht besser helfen.
  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 12:48 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