【问题标题】:PNG to JPG Java ImageIO problem [duplicate]PNG到JPG Java ImageIO问题[重复]
【发布时间】:2010-12-22 06:36:04
【问题描述】:

我已尝试以下两行代码均无济于事。该代码适用于 jpg 或 gif,但如果是 png,则会将图像变为粉红色。

ImageIO.write(input, "jpg", profileFile);

RenderedOp op = JAI.create("filestore", input, pFileName, "jpeg");

还有其他人遇到过这个问题吗?我还没找到解决办法。

【问题讨论】:

  • PNG是透明的吗?它有 alpha 通道吗?
  • 不透明。我不确定 alpha 通道。当用户在网站上上传照片时使用此代码。我将所有照片都转换为 JPG,如果他们碰巧有,我想让他们使用 PNG。

标签: java png jpeg javax.imageio


【解决方案1】:

我不确定这是否是正确的答案。但是有another post that 建议使用 alpha 通道执行 JPEG 写入有点麻烦。

【讨论】:

    【解决方案2】:

    您重复了您的问题。并且在 Sun 的库和解决方法和链接中有关于报告的错误的答案。

    Problem converting PNG to JPG using Java (ImageIO.write())

    【讨论】:

      【解决方案3】:

      我使用以下代码绘制 PNG 并没有遇到问题。它将多个PNG图像组合成一个图像。图像具有透明度,并使用双线性变换进行混合。

      BufferedImage image = new BufferedImage(BOARD_SIZE, BOARD_SIZE, BufferedImage.TYPE_INT_ARGB); 
      Graphics2D g2d = image.createGraphics();
      AffineTransformOp transformOp = new AffineTransformOp(new AffineTransform(), AffineTransformOp.TYPE_BILINEAR);
      g2d.drawImage(someOtherImage, transformOp, 0, 0);
      

      完成图像后,我使用以下代码将其写入响应:

      OutputStream responseStream = response.getOutputStream();
      ImageIO.write(image, "PNG", responseStream);
      

      【讨论】:

      • 这写了一个 png,OP 正在尝试写一个 jpg/jpeg 图像。
      猜你喜欢
      • 1970-01-01
      • 2012-03-22
      • 2011-08-28
      • 1970-01-01
      • 2012-03-26
      • 2018-10-04
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多