import java.awt.*;
import java.awt.image.*;
import java.net.*;
public class Cutimg extends Frame{
private Image im;
private Image cropped;private int width,height;
public static void main(String[] args)
 {Cutimg frame=new Cutimg();
  frame.setVisible(true);
 }
public Cutimg(){
  MediaTracker mt=new MediaTracker(this);
  im=Toolkit.getDefaultToolkit().getImage("ppmm.jpg");
  mt.addImage(im,0);
  try{mt.waitForID(0);}
  catch(Exception e){e.printStackTrace();}
  width=im.getWidth(this);
  height=im.getHeight(this);
  ImageFilter filter=new CropImageFilter(10,10,100,100);
  FilteredImageSource fis=new  FilteredImageSource(im.getSource(),filter);
  cropped=createImage(fis);
}
 
public void paint(Graphics g){
 
 g.drawImage(im,0,0,this);
 g.drawImage(cropped,0,0,this);
 }}
本人初学JAVA不久:
这是我的图像切割程序,我希望可以显示原图像和切割后的图像。但是,却只能显示原图像。不知道为什么。希望可以得到高手指点:)

解决方案 »

  1.   

    首先,ppmm.jpg的大小有多少,是不是切割的时候过大了?
    其次,如果ppmm.jpg本来的大小就是100*100像素的话你可以试试把ImageFilter filter=new CropImageFilter(10,10,100,100);的前两个参数改大一点,因为这四个参数都是以像素为单位的,所以10个像素对于肉眼来说很细小,你可能察觉不出,为什么这么说,因为你在paint方法里面在坐标0,0的地方先画了原图,然后才把切割好的图片方上去,把原图覆盖了,所以基本上你也察觉不到有什么变化了。
      

  2.   

    感谢wxm47的热心指点
    谢谢你