AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal FreePascal Canvas.FloodFill unter Linux
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas.FloodFill unter Linux

Ein Thema von Benedikt Magnus · begonnen am 9. Dez 2016 · letzter Beitrag vom 10. Dez 2016
Antwort Antwort
Seite 1 von 2  1 2      
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#1

Canvas.FloodFill unter Linux

  Alt 9. Dez 2016, 20:45
Hallo zusammen,

zu meinem Bedauern musste ich feststellen, dass FloodFill zum Einfärben von Flächen auf einem Canvas anscheinend nur unter Windows funktioniert...
Nach einigem Suchen und jeder Menge Ausprobieren habe ich aber nichts Brauchbares als Ersatz gefunden.

Kann mir daher jemand sagen, wie ich es schaffe, unter Linux ein PNG zu laden, eine Fläche gleicher Farbe einzufärben, ein zweites, teilweise transparentes, PNG drüberzuzeichnen und das Ganze anschließend wieder abzuspeichern?

Ich bin für jede Hilfe dankbar!

Geändert von Benedikt Magnus ( 9. Dez 2016 um 21:45 Uhr)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: Cavas.FloodFill unter Linux

  Alt 9. Dez 2016, 21:21
Ich bin für jede Hilfe dankbar!
Korrigiere bitte mal den Fehler in Deiner Überschrift, um späteres Suchen zu erleichtern.
  Mit Zitat antworten Zitat
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Canvas.FloodFill unter Linux

  Alt 9. Dez 2016, 21:54
Danke für den Hinweis. Ich habe es korrigiert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#4

AW: Canvas.FloodFill unter Linux

  Alt 9. Dez 2016, 22:22
Linux und Delphi?
Ich glaub das ging vor paar Jahrzehnten zuletzt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Canvas.FloodFill unter Linux

  Alt 9. Dez 2016, 22:40
Linux und Delphi?
Ich glaub das ging vor paar Jahrzehnten zuletzt.
Wüsste jetzt nicht wieso FreePascal das nicht mehr Linux unterstützen sollte
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#6

AW: Canvas.FloodFill unter Linux

  Alt 9. Dez 2016, 23:38
Ahhhhhhh, das da oben hatte ich glatt übersehn ... hatte mich schon bissl gewundert.
(nicht dass er heimlich das nächste Delphi nutzt)

Ich denk mal unter Windows wird TCanvas dort auch auf Microsofts GDI+ aufsetzen
und unter Linux demnach irgendwas Anderes verwenden.

Aber ich bin mir fast sicher, dass diese Grafik-Lib auch FloodFill kann,
sonst hätte man jetzt denken können, dass es das dort eventuell nicht gäbe.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Dez 2016 um 23:46 Uhr)
  Mit Zitat antworten Zitat
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Canvas.FloodFill unter Linux

  Alt 9. Dez 2016, 23:48
Okay, habe es jetzt mit ImageMagick gelöst. Da die API leider nicht recht funktionieren wollte, erstellt mein Programm jetzt anhand der Daten ein Shellskript mit den nötigen Kommandos...
Das ist nicht unbedingt sehr performant (trotz kleiner RAM-Disk als Tempverzeichnis), aber es funktioniert.

Weiß jemand, wie ich über die Kommandozeile ImageMagick anweisen kann, mehrere FloodFills auf ein Bild gleichzeitig anzuwenden? Das könnte die Sache noch vereinfachen.
  Mit Zitat antworten Zitat
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Canvas.FloodFill unter Linux

  Alt 9. Dez 2016, 23:50
Wenn man unter Linux Canvas.FloodFill anwendet, auf die gleiche Weise wie unter Windows, passiert einfach gar nichts... x)

Geändert von Benedikt Magnus ( 9. Dez 2016 um 23:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.478 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Canvas.FloodFill unter Linux

  Alt 10. Dez 2016, 09:04
Das liegt daran, dass unter Linux dafür keine Umsetzung existiert.

Unter Windows wird die Windows-Funktion Floodfill aufgerufen (unter MAC gibt es eine eigene FloodFillBitmap-Implementation), unter Linux landest Du hier:

Delphi-Quellcode:
function TWidgetSet.FloodFill(DC: HDC; X, Y: Integer;
  Color: TGraphicsColor;
  FillStyle: TGraphicsFillStyle;
  Brush: HBRUSH): Boolean;
begin
  Result := false;
end;
Man muss also unter Linux was eigenes machen.

Ich bin gerade dabei, mein PixPower mit Lazarus auch für Linux (und MAC) umzusetzen. Die Floodfill-Lösung für Linux steht auch noch auf meiner ToDo-Liste. Werde auf jeden Fall eine eigene Lösung auf Bitmap-Ebene machen, da ich hier mit TLazIntfImage (quasi dem Standard-Lazarus-Bitmap) arbeite, da möchte ich nicht extra eine weitere externe Bibliothek einbinden.

Weiß nicht wie eilig es ist, kann Dir meine Lösung dann gerne zur Verfügung stellen (werde ich wohl in den nächsten Tagen machen).
  Mit Zitat antworten Zitat
Benedikt Magnus

Registriert seit: 6. Jul 2012
Ort: Bonn
190 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Canvas.FloodFill unter Linux

  Alt 10. Dez 2016, 09:33
Das liegt daran, dass unter Linux dafür keine Umsetzung existiert.
Gibt es dafür einen bestimmten Grund oder hat sich dessen einfach bisher noch niemand angenommen?

Weiß nicht wie eilig es ist, kann Dir meine Lösung dann gerne zur Verfügung stellen (werde ich wohl in den nächsten Tagen machen).
Das wäre klasse! Eilig ist es nicht, daher vielen, vielen Dank!

Denn ImageMagick braucht derzeit in meiner virtuellen Maschine (zwei Kerne) für fünf Bilder (1699x911) á hundert FloodFills 95 Sekunden. Geplant waren rund fünfzig Bilder jede Stunde, was dann knapp 16 Minuten wären, und der Server kann ja wohl kaum ein Viertel seiner Zeit mit der Berechnung dieser blöden Bilder verbringen...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:06 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