我有base64字符串,我想将其转换回图像,而不管服务器端的图像格式如何。我尝试使用以下代码,图像正在创建,但当我尝试预览它时,显示错误无法加载图像。
public void convertStringToImage(String base64) {
try {
byte[] imageByteArray = decodeImage(base64);
FileOutputStream imageOutFile = new FileOutputStream("./src/main/resources/demo.jpg");
imageOutFile.write(imageByteArray);
imageOutFile.close();
} catch (Exception e) {
logger.log(Level.SEVERE, "ImageStoreManager::convertStringToImage()" + e);
}
}
public static byte[] decodeImage(String imageDataString) {
return Base64.decodeBase64(imageDataString);
}
我该怎么做才能使我的图像看起来合适?
答案 0 :(得分:1)
您的代码看起来很好。我可以为您建议一些更多的调试步骤。
GraphRequest request = GraphRequest.newGraphPathRequest(
accessToken,
"/GAMETIMETV/feed",
new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
// Insert your code here
}
});
Bundle parameters = new Bundle();
parameters.putString("fields","name,message,created_time,link,attachments{media{image}}");
request.setParameters(parameters);
request.executeAsync();
是否包含与您在网页上看到的完全相同的内容。 //如果这里有问题,你的请求已损坏,可能是前端的一些编码问题?String base64
下创建的文件内容并比较内容(大小,二进制比较)//如果出现问题,您将知道实际保存操作已损坏说明:
./src/main/resources/demo.jpg
?答案 1 :(得分:0)
试试这个:
public static byte[] decodeImage(String imageDataString) {
return org.apache.commons.codec.binary.Base64.decodeBase64(imageDataString.getBytes());
}