簡體   English   中英

JAVA-上傳PNG圖片時獲取黑色背景

[英]JAVA - Get black background when uploading PNG image

使用用戶上傳的Google的Thumbnailator保存png文件時出現問題。 它失去了透明度。 這是我的編碼:

@RequestMapping(method = RequestMethod.POST, path = "/upload")
@ResponseBody
public String upload(@RequestPart("file") MultipartFile picture) {
    String originalFileName = picture.getOriginalFilename();
    String suffix = 
         originalFileName.substring(originalFileName.lastIndexOf("."));
    String pictureName = UUID.randomUUID().toString() + suffix;
    String fileSavePath = gunsProperties.getFileUploadPath();
    Thumbnails.of(picture.getInputStream()).outputFormat("png")
        .scale(1f).outputQuality(0.15f)
        .toFile(new File(fileSavePath + pictureName));

    return pictureName;
}

它帶有黑色背景。 還有其他方法可以將其保存為透明的png嗎? 謝謝!

是什么直接將其寫入文件而不是使用縮略圖? 由於您的縮放比例始終為1.0,因此您可以直接將其寫入磁盤:

picture.transferTo(new File(fileSamePath + pictureName));

要么

FileOutputStream fos = new FileOutputStream(new File(fileSamePath + pictureName));
fos.write(picture.getBytes());
fos.close();

或者嘗試指定圖像格式:

Thumbnails.of(picture.getInputStream()).imageType(BufferedImage.TYPE_INT_ARGB).outputFormat("png").scale(1f).outputQuality(0.15f).toFile(new File(fileSavePath + pictureName));

這將使其具有透明性的24位而不是8位(如果有)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM