Bild maskieren und kopieren

M

manu

Erfahrenes Mitglied
29
Guten Abend,
ich bräuchte euren technischen Rat und hoffe mir kann jemand helfen.

Ich habe ein großes Bild und ein kleines Bild, dass meine Maske ist (nicht symmetrisch etc.). Nun möchte ich die Maske auf das große Bild legen und nur diesen Bereich auf ein anderes Bild kopieren.

Wie mache ich das mit Java?

Vielen Dank für eure Tipps.



Gruß Manu
 
Also das einfachste (aber auch nicht schnellste) wird sein, wenn du dein Originalbild (nicht die Maske) Pixel für Pixel in ein neues Bild kopierst und befor du einen Pixel kopierst prüfst ob dieser in der Maske liegt oder nicht. Wenn nicht zeichnest du einen transparenten Pixel rein.

Danach solltest du ein Bild haben, welches nur Pixel enthält, welche in der Maske liegen. Das kannst du dann auf ein beliebiges anderes Bild kopieren.

Wichtig wird warscheinlich sein, das du die Seitenverhältnisse des Bildes und der Maske beachtest. Falls diese sowieso schon übereinstimmen ist das kein Problem, aber wenn sie unterschiedlich sind ist die Abfrage ob der Pixel in der Maske liegt oder nicht noch mit einer Anpassung zu berechnen.

Außerdem dürfen die Bilder nicht allzu groß sein. Sonst droht der allseits beliebte OutOfMemoryError ^^

PS: Für solche Arten von Pixelschubsereien lohnt sich das auch mal das ins C mit dem NDK auszulagern. Also je nach dem wie dringend das feature ist. Sowas ist um ein vielfaches schneller (Ja, das hab ich getestet).
 
Zuletzt bearbeitet:
Danke für den Tipp. Daran hatte ich auch schon gedacht. Aber die Performance ist viel zu schlecht. Ich bräuchte eine Lösung, die möglichst in Echtzeit funktioniert.
 
Dann bleibt dir nur das NDK, denke ich.
 

Ähnliche Themen

B
Antworten
6
Aufrufe
1.051
jogimuc
J
W
Antworten
2
Aufrufe
744
rene3006
R
S
Antworten
33
Aufrufe
2.671
Sempervivum
S
Zurück
Oben Unten