Inverting Images

There's there a way i can invert colors on a pic?Message was edited by: ichbinsterben
[107 byte] By [ichbinsterbena] at [2007-11-27 3:35:23]
# 1

Use can use java.awt.image.RescaleOp:

import java.awt.*;

import java.awt.geom.*;

import java.awt.image.*;

import java.net.*;

import java.io.*;

import javax.imageio.*;

import javax.swing.*;

public class InvertExample implements Runnable {

public void run() {

BufferedImage original = getOrginalImage();

BufferedImage rotated = invert(original);

JPanel p = new JPanel();

p.add(new JLabel(new ImageIcon(original)));

p.add(new JLabel(new ImageIcon(rotated)));

JFrame f = new JFrame("InvertExample");

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setContentPane(p);

f.pack();

f.setLocationRelativeTo(null);

f.setVisible(true);

}

public BufferedImage getOrginalImage() {

try {

return ImageIO.read(new URL("http://blogs.sun.com/jag/resource/JagHeadshot-small.jpg"));

} catch (IOException e) {

throw new RuntimeException(e); //lazy

}

}

public BufferedImage invert(BufferedImage image) {

int w = image.getWidth();

int h = image.getHeight();

BufferedImage newImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);

RescaleOp op = new RescaleOp(-1, 255, null);

return op.filter(image, newImage);

}

public static void main(String[] args) {

EventQueue.invokeLater(new InvertExample());

}

}

This doesn't work for IndexColorModels.

DrLaszloJamfa at 2007-7-12 8:38:33 > top of Java-index,Java Essentials,New To Java...
# 2
thanx
ichbinsterbena at 2007-7-12 8:38:33 > top of Java-index,Java Essentials,New To Java...