【问题标题】:javafx quality of the images uploaded上传图像的 javafx 质量
【发布时间】:2019-04-21 08:15:22
【问题描述】:

我的应用程序使用 phpmyadmin 连接到 mysql 中的数据库并将图像存储在数据库中,但我的问题是当我从数据库下载图像并将图像发布到 imageview 时,图像的质量也非常低颜色也受到影响。

如果我使用 phpmyadmin 将图像直接发布到数据库中,然后使用我的应用程序下载图像,图像看起来很好,但如果我从我的应用程序上传图像然后我下载它,那么质量很差。

发布图片的方式是通过图片到一个byte[]然后上传到使用blob类型的数据库中。

private byte[] imagenToByte(Image imagen) {
    BufferedImage bufferimage = SwingFXUtils.fromFXImage(imagen, null);
      ByteArrayOutputStream output = new ByteArrayOutputStream();
      try {
        ImageIO.write(bufferimage, "jpg", output );
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
      byte [] data = output.toByteArray();
      return data;
}

你能帮帮我吗?

编辑

@FXML
public void eventoBotonSeleccionarImagen() {
    FileChooser imagenSeleccionada = new FileChooser();
    FileChooser.ExtensionFilter filtroImagenjpg = new ExtensionFilter("Archivos *.jpg", "*.jpg");
    FileChooser.ExtensionFilter filtroImagenJPG = new ExtensionFilter("Archivos *.JPG", "*.JPG");

    File archivo = imagenSeleccionada.showOpenDialog(null);

    try {
        BufferedImage bufferedImage = ImageIO.read(archivo);
        Image image = SwingFXUtils.toFXImage(bufferedImage, null);
        imageViewMonstruo.setImage(image);
    }
    catch(Exception e) {
        e.printStackTrace();
    }

}

【问题讨论】:

  • 如何加载/创建原始图像(Image 对象)?你为什么使用JPEG而不是例如PNG?
  • 看编辑,目的是从电脑上选择图片,我用jpg,因为图片是jpg,也可以,但是上传的图片质量很差,颜色是受影响。

标签: mysql eclipse javafx phpmyadmin


【解决方案1】:

多亏了这个,我找到了问题的答案 this question.

我所做的是将数据库中的Blob改为longblob并添加png而不是jpg,代码结果是这样的

private byte[] imagenToByte(Image imagen) {
    BufferedImage bufferimage = SwingFXUtils.fromFXImage(imagen, null);
      ByteArrayOutputStream output = new ByteArrayOutputStream();
      try {
        ImageIO.write(bufferimage, "png", output );
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
      byte [] data = output.toByteArray();
      return data;
}

最后上传和下载相同质量的图片

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 2017-06-22
    • 2016-01-26
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 2021-11-10
    相关资源
    最近更新 更多