如何在java中复制图像文件的高度

时间:2017-03-14 11:20:57

标签: java

我有一张图片并尝试在其下创建相同的图片(复制它)。 这意味着,如果我有100 * 100大小的照片,我想改变它的大小 100 * 200然后我把它写在另一个图像文件中。 这是我不知道如何制作输出文件高度的问题 正是我想写的尺寸。 请帮我处理这种情况! 谢谢。 我的代码在这里,我试图复制:

public void duplicateImage() throws IOException {


for (int i = 0; i < width; i++) {
   for (int j = 0; j < height; j++) {
    int pixel = image.getRGB(i, j);
    int alpha = (pixel & 0x0000ff00) >> 24;
    int red = (pixel & 0x00ff0000) >> 16;
    int green = (pixel & 0x0000ff00) >> 8;
    int blue = (pixel & 0x000000ff);
    int mid = (red + green + blue) / 3;
    red = blue = green = mid;
    int newPixel = alpha;
    newPixel = (newPixel << 8) + red;
    newPixel = (newPixel << 8) + green;
    newPixel = (newPixel << 8) + blue;
    image.setRGB(i, j, newPixel);
    image.setRGB(i+width,j+height,newPixel);
   }
   }
 }

1 个答案:

答案 0 :(得分:1)

我找到了一种使用BufferedImage来改变照片大小的方法。 这很简单,我分享它,所以其他人也可以理解它。 https://docs.oracle.com/javase/7/docs/api/java/awt/Image.html#getScaledInstance(int,%20int,%20int)是顺便处理的好方法。 这是我的答案:

    public void duplicateImage(File inFile,File outFile) throws IOException {
      BufferedImage img = new BufferedImage(width,2*height,BufferedImage.TYPE_3BYTE_BGR);
      BufferedImage image = ImageIO.read(inFile)
      for (int i = 0; i < width; i++) {
       for (int j = 0; j < 2*height; j++) {
        int pixel = image.getRGB(i, j%height);
        img.setRGB(i, j, pixel);
       }
       }
       ImageIO.write(img,"jpg",outFile);
     }