将一个图像粘贴到另一个图像上而不会扭曲源图像

时间:2015-12-04 11:41:21

标签: java image

我需要从图像中裁剪3X3像素素部分,然后将皱纹部分粘贴到另一张图像中。我使用drawImage方法粘贴部分。但是在这样做时,源图像的颜色会发生变化,而一些像素会变形。

      int t1=0,t2=0;
      targetFile=ImageIO.read(new File("Sky.png"));

      for(int i=0;i<=6;i+=3){
      for(int j=0;j<=6;j+=3){
           Graphics g=targetFile.getGraphics();
          BufferedImage dest=source.getSubimage(i, j, 3, 3);
           g.drawImage(dest, t1,t2, Color.BLUE,null);
           t1+=5;
          t2+=5;
          g.dispose();
     }
      }

         File f2=new File("myimg1.jpg");
      ImageIO.write(targetFile, "jpg", f2); 

1 个答案:

答案 0 :(得分:0)

好像你将文件保存为JPG。 JPG文件使用有损压缩算法存储,导致轻微的图形伪像,以节省空间,从而产生感知失真。

请尝试将其另存为无损格式,例如PNG。