可以用BufferedImage.getSubimage(int x, int y, int w, int h)方法,每次取出完整图像的一部分显示出来。

解决方案 »

  1.   

    可以 读一个图像的坐标范围的啊 比如 读第一张就 (0,0)-(1,1)查一下api
      

  2.   

    import java.awt.*;
    import javax.swing.*;
    import java.awt.geom.*;
    import java.awt.font.*;
    public class c4_01_04 extends JFrame
    {
    public static void main(String args[]){
     c4_01_04 frame=new c4_01_04();
    }
    Image image1;
    public c4_01_04(){
    super("c4_01_04");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBackground(Color.white);
    setSize(500,400);
    setVisible(true);
    }
    public void paint(Graphics g){
    Graphics2D g2;
    g2=(Graphics2D) g;                                                                  
    image1=Toolkit.getDefaultToolkit().getImage("qiduoduo.jpg"); //加载图片
    Shape sh1=new Ellipse2D.Double(100,100,150,150);             //生成椭圆对象
    g2.draw(sh1);                                                //绘制椭圆形
    g2.setClip(sh1);                                             //使用椭圆形作为裁剪区域
    Rectangle r1=sh1.getBounds();                                //取得椭圆形的边界数据
    g2.drawImage(image1,r1.x,r1.y,r1.width,r1.height,this);
    }
    }
    看一下就明白了..我加注释了.