【问题标题】:Image IO Problem图像 IO 问题
【发布时间】:2011-04-25 18:03:27
【问题描述】:
for (int i = 0; i < width; i++) {
      for (int j = 0; j < height; j++) {
        int intPixel = image.getRGB(i, j);            

        image.setRGB(i, j, intPixel);
      }      
    }
ImageIO.write(image, "JPG", new File("img/newfile01.jpg"));

这段代码制作了一个 96dpi 的图像,但源图像是 72 dpi!为什么

【问题讨论】:

    标签: java image javax.imageio


    【解决方案1】:
    BufferedImage image = ImageIO.read(inputFile);
    
          if (image.getColorModel().getColorSpace().getType() == ColorSpace.TYPE_GRAY) {
            System.out.println("is grayscale");
          }
    
          // create jpegEncode for output image
          JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(new FileOutputStream(outputFile));
    
    
    
    
          // create jpeg encoder from getting defaul value from input buffered
          // image
          JPEGEncodeParam jpegEncodeParam = jpegEncoder.getDefaultJPEGEncodeParam(image);
          // setting up density unit paramter
          jpegEncodeParam.setDensityUnit(JPEGEncodeParam.DENSITY_UNIT_DOTS_INCH);
          // setting up jpeg encode parameter
          jpegEncoder.setJPEGEncodeParam(jpegEncodeParam);
          // set quality parameter
          jpegEncodeParam.setQuality(0.75f, false);
          // set X-resolution
          jpegEncodeParam.setXDensity(X_DPI);
          // set Y-resolution
          jpegEncodeParam.setYDensity(Y_DPI);
          // encode output image
          jpegEncoder.encode(image, jpegEncodeParam);
          // flush the buffer image
          image.flush();
    

    【讨论】:

      【解决方案2】:

      似乎有一个默认值。 image.setDpi(72) 有效吗?

      【讨论】:

      • BufferedImage中没有setDpi方法。有什么课?
      • 我必须道歉。我发布了一个定制的java类。但我找到了一篇关于你的主题的文章。 coderanch.com/t/380658/java/java/Image-Resolution。据我所知,您还使用 ImageIO 类
      • #2:根据上面的文章,类javax.imageio.metadata.IIOMetadata包含方法'getAsTree()'和'setFromTree()'
      【解决方案3】:

      看看这里的答案previously asked for PNG images

      ImageIO 允许您为某些输出格式设置图像元数据,但这不是一项简单的任务,并且可能不支持 JPEG 图像。

      【讨论】:

        猜你喜欢
        • 2013-12-02
        • 2011-10-21
        • 1970-01-01
        • 1970-01-01
        • 2020-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多