Java使用GraphicsMagick图形格式转换工具时,本地测试正常但是线上一直报Improper image header或者invalid file format等问题:
最后发现是对图片文件进行读写后没有关闭流,导致线上转换时实际读取的文件缺少部分字符,使用FileOutputStream时一定要注意代码规范,时刻记得最后调用.close()方法。
FileOutputStream out = new FileOutputStream(filePath);
out.write(file);
if (out != null){
out.close();
}