gpt4 book ai didi

java - 在java中压缩base 64 png图像

转载 作者:行者123 更新时间:2023-11-28 22:59:19 26 4
gpt4 key购买 nike

您好,我想知道 Java 中是否有任何方法可以减小图像的大小。实际上,我的前端是 IOS,它们正在发送 Base 64 编码数据,当我获取编码数据时,我m 解码编码数据并存储在字节数组中。现在我想用 java 压缩 PNG 图像,我的方法代码类似于

public String  processFile(String strImageBase64, String strImageName,String donorId)
{
FileOutputStream fos =null;
File savedFile=null;
try
{
String FileItemRefPath = propsFPCConfig.getProperty("fileCreationReferencePath");
String imageURLReferncePath = propsFPCConfig.getProperty("imageURLReferncePath");
File f = new File(FileItemRefPath+"\\"+"productimages"+"\\"+donorId);
String strException = "Actual File "+f.getName();
if(!f.exists())
{
boolean isdirCreationStatus = f.mkdir();
}
String strDateTobeAppended = new SimpleDateFormat("yyyyMMddhhmm").format(new Date(0));
String fileName = strImageName+strDateTobeAppended;
savedFile = new File(f.getAbsolutePath()+"\\"+fileName);
strException=strException+" savedFile "+savedFile.getName();
Base64 decoder = new Base64();
byte[] decodedBytes = decoder.decode(strImageBase64);
if( (decodedBytes != null) && (decodedBytes.length != 0) )
{
System.out.println("Decoded bytes length:"+decodedBytes.length);
fos = new FileOutputStream(savedFile);
System.out.println(new String(decodedBytes) + "\n") ;
int x=0;
{
fos.write(decodedBytes, 0, decodedBytes.length);
}
fos.flush();
}
//System.out.println(savedFile.getCanonicalPath() +" savedFile.getCanonicalPath() ");
if(fos != null)
{
fos.close();
return savedFile.getAbsolutePath();
}
else
{
return null;
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if( fos!= null)
{
fos.close();
}
else
{
savedFile = null;
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
return savedFile.getName();
}

我正在用图像名称存储这个解码数据,现在我想把这个压缩图像存储在另一个 url 中

最佳答案

我认为这不值得付出努力。

PNG 已经具有非常高的压缩级别。很难通过额外的压缩来显着减小尺寸。

如果您真的要将图像或 Base64 编码的响应发送到客户端,当然有提高传输速率的方法:在您的服务器上启用 gzip 压缩,这样 HTTP 响应将被 gzip 压缩。如果原始数据是 Base64 编码的(这基本上意味着每个字节仅使用 8 位中的 6 位),这会大大减少要传输的实际字节数。启用 gzip 压缩对您的服务器代码是透明的,对于大多数网络服务器来说只是一个配置开关。

关于java - 在java中压缩base 64 png图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21927744/

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