Ich habe this Bild und ich möchte in der Lage sein, jedes einzelne Bild zu lesen, laden Sie es in eine Malmethode und Maus-Listener zu jeder Stelle der Farbe, aber nicht auf dem schwarzen Hintergrund. Ich möchte keinen schwarzen Hintergrund als "Knopf" verwenden und nur die farbigen Punkte haben eigene Maus-Listener, damit ich unterscheiden kann, welchen Farbfleck ich gedrückt habe. Hat jemand irgendwelche Ideen? Vielen Dank!Java Picture Farbbereich Unterscheidung
Antwort
Ich nehme an, Sie es auf diese Weise nähern könnte:
List<Shape> buttons = ...
for each pixel in the picture, top left to bottom right {
if the pixel is not black {
if the pixel is not already contained in one of the buttons {
iterate over every pixel towards the right until you reach a different color
iterate over every pixel towards the bottom until you reach a different color
// now you have the bounds of your button
// create a new Rectangle and add it to your list.
}
}
}
ich nie so etwas wie dies versucht haben, noch habe ich das obige Verfahren getestet, aber mir scheint es, wie es sein sollte Arbeit.
Warum können Sie nicht einfach das Bild mit JButton
s und JPanel
s duplizieren und Ihr Leben vereinfachen?
Nun, ich brauche einen Benutzer, um eine Bilddatei zu ihrer Layout-Präferenz zu bearbeiten, die alles sein könnte, so muss ich in der Lage sein, dies zu tun, aber es ist eine gute Idee, ich werde es versuchen, danke. – MrDrProfessorTyler
Der MouseListener gibt eine Position zurück, also würde ich diesen Ort verwenden, um das Bild an dem entsprechenden Pixel zu untersuchen, und dann verzweigen, um die erforderliche Aktion auszuführen. Wenn das Pixel schwarz wird, tust du einfach nichts.
Das Bild kann über ein BufferedImage-Objekt und einen Raster überprüft werden.
Alternativ könnte man das Bild über BufferedImage und einen Raster untersuchen und entsprechende Objekte für jedes Farbquadrat erstellen, die einzeln gedruckt und bearbeitet werden.
- 1. Farbbereich in Javascript
- 2. Excel Farbbereich Bedingungen Makro
- 3. Farbbereich zwischen Kurven in Oktave
- 4. Page loading picture
- 5. Unterscheidung zwischen Ausführungssteuerpfade
- 6. Unterscheidung zwischen Zeichenfolgenformaten
- 7. Take Picture ohne Vorschau Android
- 8. Picture alignment issue with firefox
- 9. image Skalierung der Picture Box
- 10. Java.lang.Runtime Ausnahme: Take Picture fehlgeschlagen?
- 11. Square Picture Taker für Android
- 12. Farbbereich unter der Kurve mit Gitter
- 13. Excel VBA: Farbbereich basierend auf Zellenwert
- 14. So erzwingen Sie den Farbbereich in gnuplot
- 15. Unterscheidung zwischen NLS_UPPER und UPPER
- 16. Unterscheidung zwischen Nginx und Thin
- 17. Unterscheidung zwischen verschiedenen PHP-Ausnahmen
- 18. <picture><source> relativ zur Breite von <picture>
- 19. Compact Framework Picture Box Image Problem
- 20. Android - Fabric.io Twitter REST API Profil image/picture
- 21. Unterscheidung zwischen den Datenpaketen in TCP IP
- 22. Unterscheidung zwischen Abkürzung und einfach Großbuchstaben?
- 23. Unterscheidung zwischen ImmutableJS und nativen JS-Datenstrukturen?
- 24. Algorithmus zur Unterscheidung zweier unterschiedlicher Punktmengen?
- 25. Algorithmus zur Unterscheidung zwischen Wasser und Land
- 26. Abfrage Postgres zur Unterscheidung über zwei Spalten
- 27. Unterscheidung zwischen Telefon-und Tablet-Browser
- 28. Unterscheidung von Schluss- und lokalen Variablen
- 29. Unterscheidung zwischen Warteschlange voll und Warteschlange leer
- 30. Unterscheidung in Steuerungsstile für Lab Windows CVI
Haben Sie die Roboterklasse in Betracht gezogen? Sie können den Punkt zur entsprechenden LinkedList hinzufügen und dann nach einem Mausklick die Liste finden, die den Punkt enthält, und dann eine Aktion ausführen. –
Würde es mir die Robot-Klasse erlauben, jeden Wert im Bereich jedes farbigen Bereichs zu speichern, damit ich ihn testen kann? – MrDrProfessorTyler
Die Roboterklasse kann von dort aus nach einer Farbe suchen: Wenn sie rot ist, fügen Sie den Punkt zu einer roten Liste hinzu. usw. –