Android 为已知分辨率进一步进行Jpeg压缩?可能是存储头?

Android 为已知分辨率进一步进行Jpeg压缩?可能是存储头?,android,jpeg,Android,Jpeg,我的应用程序需要非常小的jpeg文件(小于2.5KB)以二维码的形式存储为数据(不能是链接)。质量和尺寸都是一个问题。我可以保存的任何字节都可能意味着我可以使二维码更易于阅读。幸运的是,它们都有标准分辨率(160x240)和颜色深度(24位) 我有一个想法,从JPEG文件中取出部分头文件,稍后让应用程序将头文件添加回数据数组,这样可以节省600字节(哇)。到目前为止,我做压缩的方式是保留一个“黄金标准文件”,并用Q=80-10%压缩该文件,直到它适合2.5KB 因为不同的压缩比意味着不同的头,所

我的应用程序需要非常小的jpeg文件(小于2.5KB)以二维码的形式存储为数据(不能是链接)。质量和尺寸都是一个问题。我可以保存的任何字节都可能意味着我可以使二维码更易于阅读。幸运的是,它们都有标准分辨率(160x240)和颜色深度(24位)

我有一个想法,从JPEG文件中取出部分头文件,稍后让应用程序将头文件添加回数据数组,这样可以节省600字节(哇)。到目前为止,我做压缩的方式是保留一个“黄金标准文件”,并用Q=80-10%压缩该文件,直到它适合2.5KB

因为不同的压缩比意味着不同的头,所以我的想法是将最终压缩的图像通过另一个已知的标准压缩过程。但是,如果“标准压缩”大于图像固定的原始压缩,则大小实际上可能大于最终压缩图像


这样做有没有标准的方法?我觉得我可能在做什么,但我似乎无法让它工作。

我最终做的是进行多级压缩,我存储了头(D0-DB)和哈夫曼表(C4)。通过一个简单的替换算法,我可以通过这种方式节省大约550个字节。这不是100%的理想,但也不是一半坏。我丢失了大约50个字节,但质量提高和应用程序内存大小的权衡让它变得值得


为了便于扫描,在使用替换算法之前,我将最大大小减小到了1.9KB。

我已经读了三遍,我唯一能想到的是这是一个糟糕的想法。在二维码中包含JPEG数据的最终目标是什么?通过这种压缩,不仅图像会变得异常糟糕,而且将如此大量的数据整合到二维码中会使其无法被低质量的手机摄像头扫描。二维码并不是为你想要做的事情而设计的。它的想法是,它必须能够被高质量的图像识别。质量应该是一个可以识别的问题。嗯,好的。嗯,我刚刚在Photoshop中的240x160图像上尝试了“保存为Web”(这会去除多余的数据),将其设置为0质量,并将最大模糊设置为丢失,但仍然无法将其设置为低于2.5K。这看起来非常可怕。老实说,我不认为我可以给你一个满意的想法继续你的要求。如果你能更详细地介绍一下你的应用程序是如何运行的,我很乐意提出一个替代方案。到目前为止,我已经能够使用标准java图像库将所有需要压缩的图像压缩到2.5 KB以下。图像的内容是一个人的照片。验证者扫描QR码上的图像,并将其与散列和个人进行比较。可能是因为肖像有非常简单的灯光和相似的颜色,所以我使用的图像较小?可能就是这样。根据内容的复杂性,压缩会有很大变化。(我的很详细)。我想我只是不明白为什么不能简单地发送一个用户ID,或者散列本身,而不是图像。似乎没有什么真正的原因会增加复杂性,但我不清楚你到底在做什么。只是我的意见。:)