Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不损失质量的情况下减少BuffereImage的大小_Java_Image_Performance_Image Processing - Fatal编程技术网

Java 如何在不损失质量的情况下减少BuffereImage的大小

Java 如何在不损失质量的情况下减少BuffereImage的大小,java,image,performance,image-processing,Java,Image,Performance,Image Processing,由于我正在处理图像,为了提高应用程序的性能,需要在不降低质量的情况下减小图像数据的大小 例如: 如果原始缓冲图像 大小为50kb, 尺寸1024*768 应用还原alog后: 大小小于30kb, 尺寸为1024*768,质量与原始图像相同 你能告诉我如何在不降低质量的情况下减少缓冲图像吗 谢谢和问候 迷你型。除了标准的无损压缩外,我想你不能做太多 但是: 您使用的颜色深度是多少?真的需要24位的图像吗?有非常好的抖动算法,可以将颜色深度降低到调色板的颜色。通常你可以取得很好的效果。这当然取决于您

由于我正在处理图像,为了提高应用程序的性能,需要在不降低质量的情况下减小图像数据的大小

例如: 如果原始缓冲图像 大小为50kb, 尺寸1024*768 应用还原alog后: 大小小于30kb, 尺寸为1024*768,质量与原始图像相同

你能告诉我如何在不降低质量的情况下减少缓冲图像吗

谢谢和问候
迷你型。

除了标准的无损压缩外,我想你不能做太多

但是:
您使用的颜色深度是多少?真的需要24位的图像吗?有非常好的抖动算法,可以将颜色深度降低到调色板的颜色。通常你可以取得很好的效果。这当然取决于您获得的图像来源以及客户对结果的期望。

您需要定义质量度量:-)图像的压缩方式可能会使人类观察者看不到任何质量损失,即使图像数据略有变化。这是有损压缩。在无损压缩中,您将能够逐位重建原始数据

无损压缩 工作原理是“智能地重新打包数据”。这里的经典算法是or。无损存储图像的格式或某些风格

不幸的是,无损编码的作用是有限的:数据携带一定数量的信息,这就降低了文件的大小

有损压缩 工作原理是将数据重新排序为“重要”和“不重要”部分,并删除不重要的部分。这种重新排序的示例有或。最流行的有损图像压缩格式是


在有损压缩中,文件大小没有严格的下限。然而,有一个阈值,人类观察者开始看到压缩伪影。尽管如此,对于许多图像类型,有损算法的文件大小比无损算法小,质量不会明显下降。

您需要使用无损压缩,例如TIFF.JPEG 2000、JPEG-LS和WebP是候选格式,允许有损和无损模式。有些算法对某些类型的图像效果更好。然而,无损算法永远无法保证任何压缩率(或压缩率)。不幸的是,Java对这些格式的支持有些有限。JAI对前两个AFAIK有(一些)支持,谷歌对后者有一个插件。