Shape selbst rendern..?

sirbender

Top Contributor
Hallo,

nehmen wir an ich habe einen Array mit den Pixeln eines Bildes. Jedes Array-Element ist ein Integer - also genug Info fuer die Farben/Transparenz eines Pixels.

Nun have ich einen java.awt.Shape - ist recht komplex, hat also auch Loecher usw.

Der Shape soll gefuellt in einer einzigen Farbe gerendert werden. Optional waere es auch schoen nur das Outline des Shape rendern zu koennen.

Kann ich diesen Shape auf mein Bild/Pixel-Array selbst rendern indem ich jedes Pixel modifiziere? Nur wie finde ich raus welche Pixel veraendert werden sollen? Loecher im Shape sollen ja nicht gerendert werden, usw.

Ich weiss Java bringt da schon Methoden mit das zu machen - aber die sind wohl alle nativ implementiert, oder? Ich wuerde das gerne selbst implementieren da ich die Java Libs nicht nutzen kann fuer einen speziellen Fall.
 
Mache aus deinem Bild ein Image, hole dir davon den Graphics2D, und zeichne deine Shape dadrauf.

Genau das will ich ja nicht machen. Hab ich mich unklar ausgedrueckt? Ich habe eine Daten-Struktur (Klasse) aehnlich der Shape-Klasse. Nehmen wir der Einfachheit halber an es ist die Shape-Klasse. Der Shape besteht aus moveTo, lineTo, quadTo, curveTo und close commands.

Nun will ich diesen Shape rendern. Aber ich habe KEINE der bekannten Java-libs zur Verfuegung. Vor allem nicht Graphics2D!
 
Selbst rendern ist schon undeutlich. kannst du einzelne Pixel einfärben und weißt jetzt nur nicht an welcher Stelle du das genau musst? oder brauchst du sowas wie opengl ???
 
Zum Einsteig kann ich dir den Wikipedia-Eintrag zum Bresenham-Algorithmus empfehlen. Von da ab musst du halt suchen und/oder entsprechende mathematische/EDV Fachliteratur zu Rate ziehen.
 
Selbst rendern ist schon undeutlich. kannst du einzelne Pixel einfärben und weißt jetzt nur nicht an welcher Stelle du das genau musst? oder brauchst du sowas wie opengl ???

Genau. Nehmen wir an ich habe einen Shape. Ich lege diesen auf Image (Pixel-Flaeche). Innerhalb des Shapes sollen die Pixel eingefaerbt werden. Die Pixel kann ich einzeln einfaerben. Nur wie finde ich effizient raus welche Pixel einzufaerben sind?
 

Neue Themen


Zurück
Oben