2011-05-16 167 views
0

我有问题,当我保存用户上传的PNG文件。它失去了透明度。这是我如何保存它。Java:保存上传的PNG图像

ServletFileUpload upload = new ServletFileUpload(factory); 

     ProgressListenerImpl listener = new ProgressListenerImpl(); 
     UploadProgressBar uop = new UploadProgressBar(listener); 

     List<FileItem> fileItemsList = upload.parseRequest(request); 

     for(FileItem fi : fileItemsList) { 
///get name etc. 
    File fNew= new File(fileLocation, justName); 
      fi.write(fNew); 
     } 

它把黑色的背景。任何其他方式将它保存为PNG?

+0

你能提供完整的代码?什么是fi? – Liv 2011-05-16 16:20:55

+0

...是以任何方式首先处理的图像?在网络应用程序场景中调整大小并保存图像时遇到类似问题。 – vector 2011-05-16 16:23:07

+0

更新的代码仍然没有帮助。我们不知道FileItem是什么或者你的自定义写(...)方法是做什么的。这就是问题发现的地方。 – camickr 2011-05-16 16:30:46

回答

1

如果您要在服务器端创建BufferedImage,请确保将其创建为支持Alpha通道的类型,例如,

BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); 

保罗