相关疑难解决方法(0)

从TIFF文件中提取JPEG

背景 我有一个大的TIFF文件,用JPEG压缩(新的,TIFF标准的压缩7)并平铺.我需要做的是将这些图块提取到单个.jpg文件.我需要能够在解压缩/重新压缩图像数据的情况下执行此操作,因为这将需要太多的计算资源,因此我所知道的所有库都是不可能的.

我对TIFF文件结构了解很多,但几乎没有关于JPEG文件结构的知识.我现在编写的代码将来自tiff头的JPEGTable标签数据读入一个字节数组(意味着它转到标签指向的偏移量并在那里读取)和另一个将目标Tile读入一个字节的代码模糊阵列.然后我将Table字节数组写入一个新文件,然后将Tile字节数组写入该文件.Table数组的最后2个字节我用0xFF,0xFF写入,并且对于Tile数组的前2个字节是相同的,因为我发现两个数组分别以jpeg SOI和EOI序列开始和结束,如果我有更多除了每个文件之外,任何图像程序都无法打开文件.

For i as Integer = 0 to TableArray.Count-3
    stream.WriteByte(TableArray(i))
Next
stream.WriteByte(255)
stream.WriteByte(255)
stream.WriteByte(255)
stream.WriteByte(255)
For i as Integer = 2 to TileArray.Count-1
    stream.WriteByte(TileArray(i))
Next
stream.Close()
Run Code Online (Sandbox Code Playgroud)

问题 所以这就是我现在所处的问题,问题是我提取的瓷砖都是粉红色的,它应该是白色的,几乎就像一个颜色底片.它不是实心的粉红色,我可以看到我知道的原始图像中的物体轮廓.有没有人有任何想法我怎么能解决这个问题?另外,我在VB.NET中这样做,但我不认为这种语言在这种情况下真的很重要,因为它似乎更像是一个概念/算法/文件结构问题我做错了.

如果有人希望我发布我正在使用的一些代码,我可以,只需要知道哪个部分. 提取 原版的

编辑:我在2002年3月22日的Adobe Photoshop TIFF技术说明中找到了一个部分,其中说:

从TIFF到交换JPEG的转换更复杂.如果所有条带使用相同的JPEG表并且没有RSTn标记,则可以非常轻松地转换基于条带的TIFF/JPEG文件:只需删除开销标记并在条带之间插入RSTn标记.转换平铺图像更难,因为数据通常不是正确的顺序(除非图块只有一个MCU高).这仍然可以无损地完成,但是它将需要撤消和重做熵编码,以便可以更新DC系数差异.

不确定这是否与我的问题有关.

.net jpeg tiff

6
推荐指数
1
解决办法
2344
查看次数

标签 统计

.net ×1

jpeg ×1

tiff ×1