gpt4 book ai didi

java - 如何在方法之间保存数据

转载 作者:行者123 更新时间:2023-11-30 07:43:06 25 4
gpt4 key购买 nike

我有一个 Controller ,可以从 pdf(pdfBox) 创建许多图像。我将所有图片保存到 List 。而且我需要在按下按钮时为每个 View 发送一张图片。或输入值

public class Pdf{
public byte[] PDFCREATE(){
byte[] pdf = ...;
//Code for creating pdf using Itext
return pdf;

}
}

public List<byte[]> getImage(byte[] pdf) throws Exception{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
List<byte> listImg = new List()<>;
try (final PDDocument document = PDDocument.load(file)){
PDFRenderer pdfRenderer = new PDFRenderer(document);
for (int page = 0; page < document.getNumberOfPages(); ++page)
{
BufferedImage bim = pdfRenderer.renderImage(page)
ImageIO.write(bim, "png",baos);
listImg.add(baos)

}
document.close();
} catch (IOException e){
System.err.println("Exception while trying to create pdf document - " + e);
}
return baos.toByteArray();

查看我发布:

   public ResponseEntity<?> CreateFont(int pictureNumber ) {
PDF pdf= new PDF();
PdfToImg pdfToImg = new PdfToImg();
List<byte []> fileBytes = pdfToImg.getImage(pdf.PDFCREATE());
byte[] encoded= Base64.encodeBase64(fileBytes.get(pictureNumber ));
String encodedString = new String(encoded);

return new ResponseEntity<String>(
"<img src='data:image/jpeg;base64," + encodedString + "' alt='' width='420' height='580'>",
HttpStatus.OK);

但是这里我每次都必须创建pdf。是否可以将 getImage 中的值保存到列表中?当用户每次输入值(图片编号)或按下按钮时不创建新的 pdf。而不是从列表中获取值。并创建刷新页面后的新列表我需要将列表文件字节存储在某处,但是在哪里?

对不起我的英语

最佳答案

这可能对您有帮助:

private static Map<Integer, String> pictureMap = new HashMap<>();
private static PDF pdf;

public ResponseEntity<?> CreateFont(int pictureNumber) {
if(pictureMap.containsKey(pictureNumber))
return response(pictureMap.get(pictureNumber));
if(pdf == null)
pdf = new PDF();
PdfToImg pdfToImg = new PdfToImg();
List<byte[]> fileBytes = pdfToImg.getImage(pdf.PDFCREATE());
byte[] encoded = Base64.encodeBase64(fileBytes.get(pictureNumber));
String encodedString = new String(encoded);
pictureMap.put(pictureNumber, encodedString);

return response(encodedString);
}


private ResponseEntity response(String encodedString){
return new ResponseEntity<String>(
"<img src='data:image/jpeg;base64," + encodedString + "' alt='' width='420' height='580'>",
HttpStatus.OK);
}

关于java - 如何在方法之间保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53769602/

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