Re: Mirror an image
In article <lhsj1p$i60$1@dont-email.me>, Jeff Higgins
(jeff@invalid.invalid) says...
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;
//you don't need to store the width and the height here, just get it
//again in the paint method.
//the less variables/fields you have to track in your mind the code, the
//better you will be able to read it later.
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();
//you should set a clip here, so you don't need to paint the image in
//full height.
g2d.drawRenderedImage(image, null);
g2d.translate(0, 2 * height);
g2d.scale(1, -1);
g2d.drawRenderedImage(image, null);
g2d.setTransform(restore);
}
//note: using g.drawImage(img, x,y,w,h,.. ) you could
//automatically scale the image to the panel size, which may come handy.
Kind regards,
Wanja
--
...Alesi's problem was that the back of the car was jumping up and down
dangerously - and I can assure you from having been teammate to
Jean Alesi and knowing what kind of cars that he can pull up with,
when Jean Alesi says that a car is dangerous - it is. [Jonathan Palmer]
--- news://freenews.netfront.net/ - complaints: news@netfront.net ---