BIld einfärben

nex_m

Erfahrenes Mitglied
Hi,
ich suche einen Weg ein Bild einzufärben mit z.B Grau oder Grün. Ich hatte schon daran gedacht vlt. eine Ebene mit der entsprechenden Farbe über das Bild zu legen und diese auf transparent zu setzen.
Wie würde man generell vorgehen und wie lässt sich das dann umsetzen?
Kann mir da jemand weiterhelfen?


edit:
ich habe mal ein Bsp. aus einem Java-Buch probiert bzgl. Transparenz. Merkwürdig ist ,das funktioniert nicht?

Bsp.:
Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;

public class Listing3612 extends JFrame{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;


	public Listing3612(){
		super("Transparenz");
		// addWindowListener(new WindowClosingAdapter(true));
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		Container cp = getContentPane();
		// SimpleGridComponent erzeugen
		SimpleGridComponent grid = new SimpleGridComponent();
		grid.setLayout(new FlowLayout(FlowLayout.CENTER));
		// Transparenten Button hinzufügen
		JButton button = new JButton("Transparent");
		button.setOpaque(false);
		grid.add(button);
		// Undurchsichtigen Button hinzufügen
		button = new JButton("Opaque");
		grid.add(button);
		// SimpleGridComponent hinzufügen
		cp.add(grid, BorderLayout.CENTER);
	}


	public static void main(String[] args){
		try{
			// String plaf = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
			// UIManager.setLookAndFeel(plaf);
			Listing3612 frame = new Listing3612();
			frame.setLocation(100, 100);
			frame.setSize(300, 100);
			frame.setVisible(true);
		}
		catch (Exception e){
			e.printStackTrace();
			System.exit(1);
		}
	}
}

class SimpleGridComponent extends JComponent{
	protected void paintComponent(Graphics g){
		int width = getSize().width;
		int height = getSize().height;
		g.setColor(Color.WHITE);
		for (int i = 0; i < width; i += 10){
			g.drawLine(i, 0, i, height);
		}
		for (int i = 0; i < height; i += 10){
			g.drawLine(0, i, width, i);
		}
	}
}
 
Aja..hatte schon nen paar Themen dazu studiert gehabt.
Gibt' s vlt. auch eine Lösung mit Ebenen (siehe oben)? Dazu habe ich jetzt nichts konkretes gefunden?
 
Zurück