我尝试在字符串中加载图片,在使用此字符串执行操作后,保存图像。
当我尝试将FileInputStream的值指向String targetFileStr时,会出现问题。如果我不这样做,我保存图像,一切都没问题,但是当我将它保存在字符串上时,图像会发生变化,无论我是尝试从字符串中保存图像还是从FileInputStream。
FileInputStream fis = null;
File file = new File("image.png");
fis = new FileInputStream(file);
String targetFileStr = IOUtils.toString(fis, "UTF-8");
*InputStream inputStream = IOUtils.toInputStream(targetFileStr, "UTF-8");
*InputStream inputStream = fis;
// no matter which one i use, both ways fail
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(new File("image2.png"));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
} catch (Exception e) {
e.printStackTrace();
}
答案 0 :(得分:2)
您可能需要考虑通过Base64编码/解码将图像转换为String。 This is an example编码。
编码后,您可以修改字符串(实际上您创建新字符串,不能修改现有字符串),但一定要生成valide base64编码输出,否则您将无法解码。 / p>