AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Koordinaten aus PNG/SVG extrahieren
Thema durchsuchen
Ansicht
Themen-Optionen

Koordinaten aus PNG/SVG extrahieren

Ein Thema von Benedikt Magnus · begonnen am 8. Dez 2016 · letzter Beitrag vom 12. 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

Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:06
Ich sitze derzeit daran, eine Flashanwendung nach Delphi/HTML zu portieren. Aufgabe der Anwendung ist es, eine Weltkarte anzuzeigen, in der die verschiedenen Staaten (je nach Modus) anhand bestimmter Werte eingefärbt werden. Das ist auch kein Problem, das rendern der Bilddateien bekomme ich mit Delphi hin und das Anzeigen per HTML ist trivial.

Nun sollen darüber hinaus noch zwei Dinge möglich sein:
- Beim Mousover über einen Staat soll ein Hinweistext angezeigt werden.
- Beim Klick auf einen Staat soll dies per Link zur entsprechenden Staatsseite führen.

Dachte ich mir, das geht ja ganz einfach mit verweissensitiven Grafiken, oder auch per SVG-Imagemap, für beides bräuchte ich aber Koordinaten für die Polygone der Staaten...

Mir liegen sowohl die Flächen der Staaten als auch deren Umrandung als PNG vor, letzteres sogar als SVG (alles siehe Anhang). Kennt jemand von euch eine Möglichkeit, damit irgendwie die Koordinaten für die HTML-Einbindung bestimmen zu können?
Für jeden Staat alle Koordinaten per Hand zu ermitteln kommt nicht in Frage, da sitze ich nächstes Jahr noch dran...
Angehängte Dateien
Dateityp: zip Bilder.zip (205,6 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#2

AW: Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:18
ich bin raus
Achtung: Bin kein Informatiker sondern komme vom Bau.

Geändert von Jens01 ( 8. Dez 2016 um 14:21 Uhr)
  Mit Zitat antworten Zitat
Benedikt Magnus

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

AW: Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:20
Ja. Die gerenderten Bilder sollen in einer Webseite eingebunden werden. Wie erhalte ich nun aus den vorliegenden Daten die nötigen Koordinaten, um das machen zu können?
Oder gibt es gar einen völlig anderen Weg, der sich einfacher realisieren ließe?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:22
Die "billigste" Lösung für Delphi (vermutlich geht das auch in HTML JavaScript)

Du hast doch das Farben-PNG ... das bearbeitest du noch ein bissl.
* jedes Land eine andere Farbe (da reichen auch 256 Farben)
Rot=0 > nichts
Rot=1 > Land 1
Rot=2 > Land 2
...
* Klick auf das sichtbare Bild
* das selbe Pixel im internen Farben-Bild auslesen
* Farbe = Index in der Länderliste

Bei SVG, braucht man nur 'ne ordentliche SVG-Klasse, wo man auslesen kann, welches "Polygon" an der gewünschten stelle liegt und dann muß man nur noch das Polygin mit dem Land verknüpfen ... z.B. Polygone Zählen und den Index als Index für Länderliste, oder Bezeichner/Kommentare im SVG hinterlegen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#5

AW: Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:24
Naja, antworte ich doch.
Ich dachte, man könnte es so wie zB OpenGL machen. Da wird die Flächen bzw Linien in einer bestimmten Farbe eingefärbt -ohne sie auf dem Bildschirm anzeigen zu lassen-. Es kann dann die Farbe unter der Maus ermittelt werden und damit das Element. Nennt sich Colorpicking. Eventuell bringt es Dich ja auf eine Idee....
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Benedikt Magnus

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

AW: Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:31
Vielleicht habe ich mich missverständlich ausgedrückt:
Mit Delphi findet nur das Rendering der Bilder statt (in regelmäßigen Abständen). Das Anzeigen erfolgt auf einer Webseite per HTML, sodass kein Flash mehr benötigt wird.
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:33
hmmm....ich würds so versuchen:


layer 01 (untester) -> png der Welt
Layer 02 (drüba) -> png der einzelnten Staaten.

Das ganze einfach über Divs mit entsprechenden css-Eigenschaften, js-handler an die Staaten-Divs..feddich.

Das kniffligste daran wär die Positionierung der Einzelstaaten, analog zur Weltkarte. Aber das muss nur einmal gemacht werden.
Uwe
e=mc² or energy = milk * coffee²

Geändert von Ghostwalker ( 8. Dez 2016 um 14:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:37
Zitat:
Vielleicht habe ich mich missverständlich ausgedrückt:
Vom Prinzip her ist alles gleich, egal ob man den Code in Delphi oder in JavaScript/AJAX/HTML5/.... ausführt.

enweder/oder
* die Farben aus einem "unsichtbaren" Image-Layer auslesen
* die Farben aus zweiten Image auslesen
* extern eine Polygon/Staaten-Liste und beim Klick darein schauen
* beim SVG kann man eventuell die Staaten/Bezeichner intern zum Polygon/Gruppenobjekt speichern und beim Klick auslesen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 8. Dez 2016 um 14:41 Uhr)
  Mit Zitat antworten Zitat
Benedikt Magnus

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

AW: Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:38
layer 01 (untester) -> png der Welt
Layer 02 (drüba) -> png der einzelnten Staaten.

Das ganze einfach über Divs mit entsprechenden css-Eigenschaften, js-handler an die Staaten-Divs..feddich.
Und wie genau würde das für nichtrechteckige Staaten aussehen? Würde das Ganze nicht auch reagieren, wenn ich auf den transparenten Teil eines Staats-PNGs klicke, obwohl sich der eigentlich schon im nächsten befindet?
  Mit Zitat antworten Zitat
Benedikt Magnus

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

AW: Koordinaten aus PNG/SVG extrahieren

  Alt 8. Dez 2016, 14:40
Vom Prinzip her ist alles gleich, egal ob man den Code in Delphi oder in JavaScript/AJAX/HTML5/.... ausführt.
Ich werde mich mal erkundigen, wie sich das in JavaScript umsetzen ließe, das würde dann nämlich vielleicht gehen...

Edit: Okay, das Ganze dürfte sich mit Javascript per Canvas und Pixelvergleich lösen lassen. Vielen dank für eure Hilfe und himitsu für die Lösung!
Sollte es nicht klappen, melde ich mich nochmal.

Geändert von Benedikt Magnus ( 8. Dez 2016 um 14:51 Uhr)
  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 02:14 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