Graphics.copyArea bug?
(1/1)
lauwenmark:
Hello,
I have a problem when using copyArea to scroll an image with a negative dx value (that is, scroll an image to the left) with an opaque picture format.
Here is a simple test I performed in a JFrame:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class TestFrame extends javax.swing.JFrame
{
private BufferedImage buffer = null;
/**
* Creates new form TestFrame
*/
public TestFrame()
{
try
{
BufferedImage img = ImageIO.read(new File("/home/lauwenmark/tmp/test.jpg"));
this.buffer = new BufferedImage(1600, 1200, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = this.buffer.createGraphics();
g2d.drawImage(img, 0, 0, this);
g2d.dispose();
}
catch (IOException ex)
{
ex.printStackTrace();
this.buffer = new BufferedImage(1600, 1200, BufferedImage.TYPE_INT_RGB);
}
}
@Override
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
super.paint(g);
g2d.drawImage(this.buffer, 0, 0, this);
}
And I scroll using this:
1
2
3
4
Graphics2D g2d = buffer.createGraphics();
g2d.copyArea(64, 0, this.buffer.getWidth()-64, this.buffer.getHeight(), -64, 0);
g2d.dispose();
this.repaint();
When this.buffer is of TYPE_INT_ARGB, it works as expected. However, when using TYPE_INT_RGB, it doesn't and ends up corrupting the display like this:
Uploaded with ImageShack.us
Where am I doing it wrong? Or is it a bug in copyArea?
gimbal:
Question has already gotten answers here:
https://forums.oracle.com/forums/thread.jspa?threadID=2334244
Navigation
[0] Message Index