请教各位高人一下,小妹之前用ij.ImagePlus处理图像,现在要改用java.awt.Image软件包对图像进行处理,想请问一下, 
img.setProcessor("",img.getProcessor().resize(newWidth,newHeight));   
这个命令img为ImagePlus类,但如果img改用Image类,怎样能实现呢?在ij.ImagePlus的getProcessor().有一些方法直接可以使用,但在java.awt.Image没有,例如:
imagenCopy = new ImagePlus("",imagenWork.getProcessor().duplicate());//可以复制图像用于之后的处理
imgLabel.setIcon(new ImageIcon(imagenCopy.getProcessor().createImage()));//使用创建的新图像
用image怎么能实现呢?是否要调用其他的软件包?不胜感激!!! 
上面的命令就是用在以下,要重新设定图像的尺寸,来使之适应JFrame的尺寸。 package   Tranformation; import   java.awt.Image; /*resize*/ public   class     resizeImage{ public   void   resize(Image   img,   int   longMax) 

if(img==null   ¦ ¦   img.getWidth(null) <longMax   ¦ ¦   img.getHeight(null) <longMax   ¦ ¦   longMax <0) 
return; 
  
int   width   =   img.getWidth(null); 
int   height   =   img.getHeight(null); 
int   newWidth; 
int   newHeight; 
int   k=1; do 

newWidth     =   (int)(width/k); 
newHeight   =   (int)(height/k); 
k++; 
}while(newWidth> longMax   ¦ ¦   newHeight> longMax); //如何用java.awt实现以下保存设置图像的大小 
//img.setProcessor("",img.getProcessor().resize(newWidth,newHeight)); 


解决方案 »

  1.   

    你可以参考这种方式 ,这个方法能实现简单的缩放 .
    public static final Image resizeImage(Image srcImage,int newWidth,int newHeight)
     {
      BufferedImage output = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_3BYTE_BGR);
      Graphics2D g = output.createGraphics();
      g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
      g.drawImage(srcImage, 0, 0, newWidth, newHeight,null);
      return Toolkit.getDefaultToolkit().createImage(output.getSource());
     }
      

  2.   

    这个可以实现重新设定图像的尺寸。我先试一下,看看能不能做到我想要得。先谢谢你的回复啦:D不知复制一个同样的图像用Image有没有什么好的建议?
    比如用ImagePlus的Processor的duplicate很容易实现。
    imagenCopy   =   new   ImagePlus("",imagenWork.getProcessor().duplicate());//可以复制图像用于之后的处理 谢谢:)
      

  3.   

    ImagePlus是什么?没听过..
    不要看表象的东西,这里只不过封装了一下,名称叫得好听点..就像我说的没听过,不知道它的实现,你也可以研究一下它的实现方式.
      

  4.   

    ImageProcessor有四个实现:
    ByteProcessor,ColorProcessor,FloatProcessor,ShortProcessor
    它们的duplicate方法都只是拷贝原图片的二进制码来重新构建一个一样尺寸大小的对象.