Java中像素阵列到图像的转换

Java中像素阵列到图像的转换,java,arrays,image-processing,colors,Java,Arrays,Image Processing,Colors,我曾经将图像转换成像素阵列 转换为2,无需使用GetRGB方法将图像读取到像素阵列 像素阵列到图像的writeToFile方法 现在我想把像素数组转换成图像。但是当我转换它时,我丢失了图像数据 初始图像大小:80Kb JPG 重复图像大小:71Kb JPG 我可以清楚地注意到两个图像之间的一些差异,Java生成的图像有某种白噪声 我想在不丢失单像素数据的情况下再现图像,如何在Java中实现?jpg文件格式使用有损压缩算法,这意味着它生成的文件与原始文件略有不同。可以将“质量”设置更改为或多或

我曾经将图像转换成像素阵列

  • 转换为2,无需使用GetRGB方法将图像读取到像素阵列
  • 像素阵列到图像的writeToFile方法
现在我想把像素数组转换成图像。但是当我转换它时,我丢失了图像数据

  • 初始图像大小:80Kb JPG
  • 重复图像大小:71Kb JPG
  • 我可以清楚地注意到两个图像之间的一些差异,Java生成的图像有某种白噪声


    我想在不丢失单像素数据的情况下再现图像,如何在Java中实现?

    jpg文件格式使用有损压缩算法,这意味着它生成的文件与原始文件略有不同。可以将“质量”设置更改为或多或少地压缩,但在不进行任何修改的情况下,无法使用原始大小保存


    这就是为什么不建议jpg用于图像编辑。改用无损格式,如PNG。

    jpg文件格式使用有损压缩算法,这意味着它生成的文件与原始文件略有不同。可以将“质量”设置更改为或多或少地压缩,但在不进行任何修改的情况下,无法使用原始大小保存


    这就是为什么不建议jpg用于图像编辑。改用无损格式,比如PNG。

    它看起来有点不同。因为原始图像是JPG,为什么不能复制相同的图像?这就像我们不能用Java复制原始图像一样。它不是Java,而是jpg文件格式。没有任何图像编辑软件可以满足您的要求。如果您想要一个精确的副本,可以使用Files.copy。但是如果我只想旋转图像并复制原始图像的副本?或者其他一些图像操作?这可以在不丢失的情况下完成,但需要特别了解文件格式的内部工作方式和数据的乱序,而不是将图像作为像素读取。我认为标准的libjpegc库可以做这些操作,您可以使用jna或jni从Java调用它的函数,但不能从Java调用?我尝试了PNG格式的文件,它的旋转和工作良好。不过,为什么不在不丢失数据的情况下使用JPG或其他文件格式呢?它看起来有点不同。因为原始图像是JPG,为什么不能复制相同的图像?这就像我们不能用Java复制原始图像一样。它不是Java,而是jpg文件格式。没有任何图像编辑软件可以满足您的要求。如果您想要一个精确的副本,可以使用Files.copy。但是如果我只想旋转图像并复制原始图像的副本?或者其他一些图像操作?这可以在不丢失的情况下完成,但需要特别了解文件格式的内部工作方式和数据的乱序,而不是将图像作为像素读取。我认为标准的libjpegc库可以做这些操作,您可以使用jna或jni从Java调用它的函数,但不能从Java调用?我尝试了PNG格式的文件,它的旋转和工作良好。不过,为什么不使用JPG或其他文件格式而不丢失数据呢?也许你搜索得不好。在这个网站上,你可以找到解决方案:@blackSmith,谢谢:)也许你搜索得不好。在这个网站上,你可以找到解决方案:@blackSmith,谢谢:)