gpt4 book ai didi

java - 使用文件夹中的 spring 和 apache common 在网络上显示图像

转载 作者:行者123 更新时间:2023-12-01 23:24:16 24 4
gpt4 key购买 nike

在我的应用程序中,我有一个上传功能。为此,我使用了 apache-commons 文件上传和 spring multipart,并将图像存储在目录文件夹中(不在项目上下文中)。我遇到的问题是获取图像并将其渲染在 jsp 上。我尝试使用 Buffered image 和 ImageIO 从该文件夹中读取图像,但不知道如何使用 img 标签在 jsp 中渲染它。任何帮助将不胜感激。

//Code for reading 
BufferedImage im=ImageIO.read(new File(imagePath));

最佳答案

终于能够使用img标签在网络浏览器上显示图像了。我现在遵循的步骤:1.我使用BufferedImage读取图像。2.使用ByteArrayOutputStream将bufferedImage转换为字节。3.使用apache commons codec lib将流编码为Base64并转换为字符串4.使用img标签在html上返回该图像的字符串值

 //Pseudo Code 
BufferedImage bufferedImage=ImageIO.read(new File(imagePath));

//imageDao contains the image name that i stored in the database
String []formatSplit=imageDao.split("\\.");

if(formatSplit.length==2){
String format=formatSplit[1];

//ImageUtility is class that contain code for converting bufferedimage to string
String traineeImage=ImageUtility.encodeToString(bufferedImage,format );

model.addAttribute("imagePath", traineeImage);
}


//ImageUtilty class -method

public static String encodeToString(BufferedImage image, String type) {

String imageString=null;
String encodedImage=null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();

try {

ImageIO.write(image, type, bos);
byte[] imageBytes = bos.toByteArray();


encodedImage=org.apache.commons.codec.binary.Base64.encodeBase64String(imageBytes);

imageString = "data:image/"+type+";base64,"+encodedImage;

bos.close();
} catch (IOException e) {
e.printStackTrace();
}
return imageString;
}

在 img 标签 src 属性中,我传递了 imageString 并且它起作用了。为了找到解决方案,我从 stackoverflow 和其他博客中找到了很多提示,这些提示帮助我实现了我想要的目标。谢谢。

关于java - 使用文件夹中的 spring 和 apache common 在网络上显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20242092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com