Extraia JPEG do arquivo TIFF

Fund Eu tenho um arquivo TIFF grande compactado com JPEG (novo, compactação 7 no padrão TIFF) e lado a lado. O que eu preciso fazer é extrair esses blocos para arquivos .jpg individuais. Preciso fazer isso sem descompactar / recomprimir os dados da imagem, porque isso exigirá muitos recursos de computação; portanto, todas as bibliotecas que eu conheço estão fora de questão.

Eu sei muito sobre a estrutura de arquivos TIFF, mas quase nada sobre a estrutura de arquivos JPEG. Eu tenho um código escrito agora que lê os dados da tag JPEGTable do cabeçalho tiff em uma matriz de bytes (o que significa que ele vai para o deslocamento apontado pela tag e a lê lá) E outra sinopse de código que lê o bloco de destino em um byte array. Então eu estou escrevendo oMes byte array para um novo arquivo e, em seguida, escrevendo oTelh matriz de bytes para esse arquivo depois disso. Os últimos 2 bytes doMes array Eu escrevo com 0xFF, 0xFF e o mesmo para os primeiros 2 bytes doTelh, porque descobri que ambas as matrizes começam e terminam com as sequências jpeg SOI e EOI, respectivamente, e se eu tivesse mais de 1 de cada uma, os arquivos não poderiam ser abertos por nenhum programa de image

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()

Problem Então é onde estou agora, o problema é que meus ladrilhos extraídos estão todos sombreados de rosa onde deveriam ser brancos, quase como uma cor negativa. Não é sólido Rosa, posso ver contornos de objetos que eu sei que estão na imagem original. Alguém tem alguma idéia de como eu posso resolver isso? Além disso, estou fazendo isso no VB.NET, mas não acho que a linguagem realmente importe nesse caso, pois parece ser mais um problema de conceito / algoritmo / estrutura de arquivos que estou fazendo de errado.

Se alguém quiser que eu publique parte do código que estou usando, posso apenas saber qual parte.

EDIT: Encontrei no Adobe Photoshop TIFF Technical Notes de 22 de março de 2002 uma seção que diz:

A conversão de TIFF para trocar JPEG é mais complexa. Um arquivo TIFF / JPEG baseado em tira pode ser convertido com bastante facilidade se todas as faixas usarem tabelas JPEG idênticas e sem marcadores RSTn: basta excluir os marcadores aéreos e inserir marcadores RSTn entre as faixas. A conversão de imagens lado a lado é mais difícil, pois os dados geralmente não estão na ordem correta (a menos que os blocos tenham apenas um MCU de altura). Isso ainda pode ser feito sem perdas, mas exigirá desfazer e refazer a codificação de entropia para que as diferenças do coeficiente de CC possam ser atualizada

Não tenho certeza se isso é relevante para o meu problema ou nã

questionAnswers(1)

yourAnswerToTheQuestion