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
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.558 Beiträge
 
Delphi 12 Athens
 
#1

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
 
#2

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
Benedikt Magnus

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

AW: Canvas.FloodFill unter Linux

  Alt 10. Dez 2016, 10:40
Okay, ich habe nun entdeckt, dass es fcl-image gibt und sogar, wie man es richtig anwendet.
Nach einigem Codeumbau läuft dort nun auch das FloodFill -> Die fünf Bilder von oben in unter zwei Sekunden.

Daher ist mein Problem nun gelöst. Dennoch Harry vielen Dank für dein Angebot!
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.558 Beiträge
 
Delphi 12 Athens
 
#4

AW: Canvas.FloodFill unter Linux

  Alt 10. Dez 2016, 10:55
OK, habe mich noch gar nicht so intensiv mit FPCanvas befasst, sehe nun aber, dass da auch eine FloodFill-Funktion gegeben ist.

Und die funktioniert auch unter Linux?

Dann könnte ich mir eine eigene Implementation evtl. ersparen (wird ja wohl irgendeine Konvertierungsmöglichkeit zwischen TBitmap / TLazIntfImage / FPImage bestehen).
  Mit Zitat antworten Zitat
Benedikt Magnus

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

AW: Canvas.FloodFill unter Linux

  Alt 10. Dez 2016, 11:50
Oh ja, die funktioniert einwandfrei unter Linux!

Mit FPCanvas konnte ich soweit alles machen wie mit dem Standardcanvas auch (lediglich die Initialisierung ist etwas umständlich). Nur für das Zeichnen eines transparenten PNGs aufs Canvas musste ich eine kleine Anpassung vornehmen, aber auch das funktioniert jetzt prima.
  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 19:51 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