我通过使用序列化了png文件
ByteArrayOutputStream b = new ByteArrayOutputStream();
ImageIO.write(img, "png", b);
return b.toByteArray();
并将结果数组写入数据库列。
现在,我已经将Java版本从oracle 8更改为openjdk 11,并且序列化的结果有所不同。 对于图片本身而言,这将不是问题,但是对于所有Java版本,我需要为所有png图片使用相同的序列化数据(因为我为每行创建了所有序列化列数据的证书)。
是否存在某种配置可能性,我可以准确地说出png文件应如何显示-以及是否可以在(默认)java oracle 8中显示该文件?
我试图从ImageIO包中复制PNGImageReader和PNGImageWriter,但是它使用com.sun.imageio.plugins.common.InputStreamAdapter以及该包的其他依赖项,这些依赖项未声明为可见。 >
答案 0 :(得分:0)
PNG编码具有几个参数,主要是“过滤”(像素预测)策略和ZLIB压缩的设置。要求不同的PNG编码器生成相同的二进制文件几乎是没有希望的。