AGB  ·  Datenschutz  ·  Impressum  







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

Malwerkzeug

Ein Thema von Plattenputzer · begonnen am 2. Jun 2005 · letzter Beitrag vom 3. Jun 2005
Antwort Antwort
Plattenputzer

Registriert seit: 2. Jun 2005
Ort: Stuttgart
5 Beiträge
 
#1

Malwerkzeug

  Alt 2. Jun 2005, 17:47
Ich habe 2 Probleme:
1. Weiß jemand wie man die normalen Mal- und Zeichnenwerkzeuge bei einem TImage einsetzen kann?
z.b. wie man eine Flache mit Farbe ausfüllen kann?
2. Wenn ich z.b ein Kreis habe und ihn füllen will, aber er ist "nicht ganz dicht" Kann man machen, dass das Programm kleine Lücken erkennt und anschliesend schließt?

Ich bin für jede Hilfe schon im voraus dankbar.
Äh?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Malwerkzeug

  Alt 2. Jun 2005, 17:55
Hallo Plattenputzer,

Zitat von Plattenputzer:
Ich habe 2 Probleme:
mach bitte fuer jede deiner Fragen einen eigenen Thread auf. Sonst gibts hier ein heilloses Durcheinander.
Und herzlich willkommen in der DP

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Plattenputzer

Registriert seit: 2. Jun 2005
Ort: Stuttgart
5 Beiträge
 
#3

Re: Malwerkzeug

  Alt 2. Jun 2005, 19:24
Das ist eigentlich ein Hauptproblem mit einem Unterproblem:
Wie kann ich eine Fläche, die von einer Linie, z.B. einem Kreis, begrenzt wird mit Farbe füllen.
(Wie in Paint der Farbeimer es tut)
Das Problem, was zu tun ist, wenn die Linie nicht ganz sauber geschloßen ist, ist erst mal nicht so wichtig.
Äh?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Malwerkzeug

  Alt 2. Jun 2005, 19:28
Schau dir mal Delphi-Referenz durchsuchenTCanvas.FloodFill an.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Plattenputzer

Registriert seit: 2. Jun 2005
Ort: Stuttgart
5 Beiträge
 
#5

Re: Malwerkzeug

  Alt 2. Jun 2005, 20:26
Danke!

Es funkt. Aber wie kann ich einen Farbwert angeben, mit dem gefüllt wird.
Bisher wird nur mit weis gefüllt. Ich kann nur bestimmen was die Grenze sein soll und nich mit was gefüllt wird. Mach ich was falsch? Meine Delphihilfe ist leider nur Englisch.
Äh?
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Malwerkzeug

  Alt 2. Jun 2005, 20:40
Hier die Delphi Hilfe zu TCanvas.FloodFill auf Deutsch
Zitat:
Die Methode FloodFill füllt unter Verwendung des aktuellen Pinsels einen Bereich der Zeichenfläche.

Delphi-Syntax:
procedure FloodFill(X, Y: Integer; Color: TColor; FillStyle: TFillStyle);
Beschreibung

Mit FloodFill können Sie unter Verwendung des aktuellen Pinsels einen (nicht unbedingt rechteckigen) Bereich des Bildes füllen. Zur Bestimmung des Bereichs wird ausgehend vom Punkt (X,Y) der Bereich verwendet, der so weit reicht, bis eine Änderung der im Parameter Color angegebenen Farbe auftritt.

X und X geben die Koordinaten auf der Zeichenfläche an, bei denen der zu füllende Bereich beginnt.

Color gibt die Farbe an, die an der Begrenzung des zu füllenden Bereichs verwendet werden soll. Die Interpretation ist von dem Wert in FillStyle abhängig.

FillStyle gibt an, ob für alle Pixel des Bereichs derselbe Wert (in Color angegeben) verwendet werden soll oder ob für alle Punkte andere Werte gelten.

Tipp: Wenn Sie fsSurface als FillStyle verwenden, können Sie mit der Eigenschaft Pixels den genauen Wert der Farbe am Punkt (X,Y) ermitteln. Bei fsBorder können Sie mit derselben Eigenschaft den genauen Farbwert der Begrenzung ermitteln, wenn einer der Begrenzungspunkte bekannt ist.
Daraus Ergibt sich
wenn du Brush.Color veränderst verändert sich die Fülfarbe
Christian N.
  Mit Zitat antworten Zitat
Plattenputzer

Registriert seit: 2. Jun 2005
Ort: Stuttgart
5 Beiträge
 
#7

Re: Malwerkzeug

  Alt 2. Jun 2005, 20:57
Des habe ich gerade auch herausgefunden und es funktioniert. Trozdem Danke.
Jetzt komme ich zu meinem Unterproblem mit den undichten Linien:
Also: Wenn der Kreis, der gefüllt werden soll nicht sauber gezeichnet ist und ein paar Pixel fehlen, läuft die Farbe mit der gefüllt werden soll sozusagen aus und die Fläche ausßerhalb des Kreises wird auch gefüllt.
Jetzt wäre es schön, das so hinzubiegen, dass die Farbe "zähflüssig" ist und bei kleineren Lücken eben nicht "ausläuft".
Hat jemand eine Idee?
Äh?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#8

Re: Malwerkzeug

  Alt 2. Jun 2005, 21:04
Was für Kreise denn? Die von TCanvas.Ellipse erzeugten sind doch "dicht", oder etwa nicht ?
Auf jeden Fall wirst du um eine eigene Prozedur nicht herumkommmen. Spontan fällt mir aber keine Lösung, um dann die Lücken zu erkennen, ein.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#9

Re: Malwerkzeug

  Alt 2. Jun 2005, 22:09
Hallo,

Zum Zeichnen würde ich im Übrigen kein TImage sondern eine Paintbox und ein Offscreen-Bitmap verwenden
TImage ist dafür nicht gedacht.

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Plattenputzer

Registriert seit: 2. Jun 2005
Ort: Stuttgart
5 Beiträge
 
#10

Re: Malwerkzeug

  Alt 3. Jun 2005, 14:33
Ich habe vor ein Programm zu machen dass einen Höhenlinienplan in verschiedene Graustufen färbt und man nicht wie in Paint mit dem Stift malt oder so.
Und da ist es halt mal so, dass beim einscannen (z.b wegen einer Schrift oder wenn eine Linie mit einer anderen Farbe die über der Höhenlinie gedruckt ist) eine Lücke entstehen kann, wenn man z.B. alle Pixel die nicht die Farbe der Höhenlinie hat, wegrechnen lässt.
Wenn man jetzt füllt werden mehrere Höhenebenen In einem Farbton gefüllt, wo doch jede Höhe ihre eigene Farbfläche braucht.
Das ganze soll dazu dienen Höhenlinienpläne in Greyscalemaps für die UR-2-Runtime zu konvertieren.
Äh?
  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 08:04 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