Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.AlphaComposite;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.image.BufferedImage;
- import java.io.IOException;
- import java.net.URL;
- import javax.imageio.ImageIO;
- import javax.swing.ImageIcon;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- public class ChangeColourTest extends JPanel {
- // Main
- public static void main(String[] args) {
- JFrame jf = new JFrame("Test");
- jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- jf.setPreferredSize(new Dimension(150, 150));
- JPanel under = new JPanel();
- under.setBackground(Color.green);
- under.setPreferredSize(new Dimension(150, 150));
- // jf.getLayeredPane().add(under, -1);
- ChangeColourTest cct = new ChangeColourTest( new Color(0xFFFF0000) );
- cct.setOpaque(false);
- jf.add(cct);
- jf.pack();
- jf.setVisible(true);
- }
- // Holders
- private BufferedImage image;
- private Color color;
- // Constructor
- public ChangeColourTest( Color c )
- {
- setBackground(Color.pink);
- // Args
- color = c;
- setPreferredSize(new Dimension(150,150));
- // Load the image
- try {
- image = ImageIO.read(new URL("http://i.imgur.com/Pu6iq.png")); /* A black 'S' on a transparent background. */
- } catch (IOException ex) {
- System.err.println("IOException");
- }
- // create red image
- BufferedImage redVersion = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);
- Graphics2D g = (Graphics2D) redVersion.getGraphics();
- g.setColor(Color.red);
- g.fillRect(0, 0, image.getWidth(), image.getHeight());
- // paint original with composite
- g.setComposite(AlphaComposite.DstIn);
- g.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), 0, 0, image.getWidth(), image.getHeight(), null);
- JLabel label = new JLabel();
- label.setPreferredSize(new Dimension(150, 150));
- label.setIcon(new ImageIcon(redVersion));
- add(label);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement