Re: Mirror an image
On 04/06/2014 02:18 PM, Wanja Gayk wrote:
Without any test, this would be my first, rough idea:
Have fun.
Thanks.
Here's another, not exactly per my first post
but the must be 25 ways of doing this task.
package scratch;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
@SuppressWarnings("serial")
public class Scratch extends JComponent {
private BufferedImage image;
private int width, height;
public Scratch() {
try {
image = ImageIO.read(new File("/path/to/image"));
width = image.getWidth();
height = image.getHeight();
setPreferredSize(new Dimension(width, 2 * height));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
AffineTransform restore = g2d.getTransform();
g2d.drawRenderedImage(image, null);
g2d.translate(0, 2 * height);
g2d.scale(1, -1);
g2d.drawRenderedImage(image, null);
g2d.setTransform(restore);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
Scratch scratch = new Scratch();
JScrollPane scroller = new JScrollPane();
scroller.getViewport().add(scratch);
JFrame frame = new JFrame("Scratch");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(scroller);
frame.pack();
frame.setVisible(true);
}
});
}
}