Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/dev' into dev

tags/B.1.1.0.0_20230818_base^2
kira pirms 2 gadiem
vecāks
revīzija
2ec51191d5
1 mainītis faili ar 28 papildinājumiem un 2 dzēšanām
  1. +28
    -2
      xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/utils/PdfToImageUtil.java

+ 28
- 2
xueyi-modules/xueyi-file/src/main/java/com/xueyi/file/utils/PdfToImageUtil.java Parādīt failu

@@ -8,6 +8,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;

import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
@@ -18,6 +20,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@@ -70,8 +73,11 @@ public class PdfToImageUtil {
BufferedImage image = pdfRenderer.renderImageWithDPI(pageIdx, 300); // Set the DPI as needed

// 保存图像到本地临时目录
String imageName = "page_" + (pageIdx + 1) + ".png";
File imageFile = saveImageToFile(image, imageName);
/*String imageName = "page_" + (pageIdx + 1) + ".png";
File imageFile = saveImageToFile(image, imageName);*/
String imageName = "page_" + (pageIdx + 1) + ".jpg";
File imageFile = saveCompressedImage(image, imageName, 0.8f);

imageFiles.add(imageFile);
}
}
@@ -131,6 +137,26 @@ public class PdfToImageUtil {
}


private static File saveCompressedImage(BufferedImage image, String imageName, float compressionQuality) throws IOException {
File tempDir = new File(TEMP_DIR);
if (!tempDir.exists()) {
tempDir.mkdirs();
}

File imageFile = new File(tempDir, imageName);

Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpg");
ImageWriter writer = writers.next();

ImageWriteParam param = writer.getDefaultWriteParam();
param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
param.setCompressionQuality(compressionQuality);

ImageIO.write(image, "jpg", imageFile);

return imageFile;
}



/**


Notiek ielāde…
Atcelt
Saglabāt