Acrescentar um arquivo ao final de outro

2

Eu sei de guias como isso que é muito fácil para adicionar um arquivo RAR ao final de um JPG. O que eu estou querendo saber é se são apenas arquivos JPG que podem manipular dados extras no final, e se eu posso anexar qualquer blob binário arbitrário ao final de um JPG. Eu não me importo se o arquivo que eu adiciono ao final será reconhecido pelo seu programa, eu só me importo que o JPG apareça exatamente o mesmo para os visualizadores de imagens.

Para fornecer informações mais específicas sobre o meu caso de uso, estou tentando implementar um mecanismo de backup em um webapp com foco em dispositivos móveis. Preciso que isso funcione para o iOS, portanto, a única avenida disponível é usar dados armazenados em um arquivo de imagem. É um pouco desajeitado, mas humor-me em entender que isso faz sentido neste caso de uso. No link acima, é mostrado que os arquivos RAR anexados a um JPG ainda podem ser abertos, pois imagino que não seja necessário que os RARs estejam em um deslocamento de zero em um determinado arquivo, e que os aplicativos de arquivamento procurarão o cabeçalho do RAR . Eu quero implementar algo semelhante para um blob binário arbitrário, programado em Javascript.

    
por TreyK 22.01.2014 / 03:56

1 resposta

1

whether it's only JPG files that can handle extra data at the end

Qualquer formato de arquivo que declare o tamanho de seu conteúdo pode ser anexado com dados aleatórios e ainda ser analisado corretamente por aplicativos compatíveis com especificação. Os arquivos JPG consistem em vários segmentos, com segmentos de comprimento dinâmico que declaram seu tamanho no começo. Assim, quaisquer dados aleatórios acrescentados no final devem funcionar, uma vez que o aplicativo que os lê não deve sequer acessar os dados anexados. Mesma coisa com PNGs (cada pedaço declarou seu tamanho no começo). Isso não funcionará em MP3s, infelizmente.

No entanto, isso só funcionaria em aplicativos compatíveis . Alguns aplicativos podem ter atalhos para reduzir a memória ou acelerar a leitura, o que pode tornar a imagem distorcida. Os aplicativos em si podem falhar ao carregar arquivos grandes devido à sua própria restrição de memória / framework / dispositivo.

    
por 22.01.2014 / 08:18