Java 确切地说,在哪里;元数据“;JPEG原始块中的边界?
我知道JPEG图像中有多种类型的“元数据”: 但是,我需要在哪里剪切字节数组才能将blob拆分为通用元数据部分和剩余的实际图像数据部分呢 我想保留所有元数据,调整图像大小,然后再次添加以前存储的元数据 什么是神奇的分隔符字节序列或位置 谢谢简短的回答是“视情况而定…” <这里有几个事情要考虑:Java 确切地说,在哪里;元数据“;JPEG原始块中的边界?,java,javascript,c,image,jpeg,Java,Javascript,C,Image,Jpeg,我知道JPEG图像中有多种类型的“元数据”: 但是,我需要在哪里剪切字节数组才能将blob拆分为通用元数据部分和剩余的实际图像数据部分呢 我想保留所有元数据,调整图像大小,然后再次添加以前存储的元数据 什么是神奇的分隔符字节序列或位置 谢谢简短的回答是“视情况而定…”
我的回应是澄清一些事情。JPEG标准是无法实现的。例如,它定义了如何对组件进行编码和解码,但没有定义组件是什么。JFIF是第一种常用于填补空白的JPEG文件格式 如果我们将元数据定义为解码压缩图像不需要的所有描述性数据;数据和元数据之间有一个相当清晰的界限。在大多数情况下,任何APPn或COM标记都是元数据 我之所以这么说,很大程度上是因为仅仅存在一个JFIF APP0标记就告诉解码器,图像要么是灰度的,要么是YCbCr格式的,未进行伽马校正。JFIF(缩略图、像素密度)中实际上几乎没有元数据 JFIF和EXIF流的结构仅在定义格式的APPn标记的格式上不同。由于APPn标记包括长度,解码器可以跳过标记而不读取任何元数据。换句话说,JPEG解码器只需要知道它遇到了JFIF APP0标记或EXIF APP1标记来解码图像,而不需要读取这些标记中的数据 EXIF比JFIF更复杂的情况只发生在APPn标记中。同样,解码器可以通过跳过标记忽略这种复杂性 JFIF要求流以SOI ma开头