Converter TIFF em JPG usando FFMPEG mantendo o mesmo DPI

3

Estamos usando o FFMPEG em nosso aplicativo java e estou tentando converter um arquivo tiff para jpg, mas o requisito é manter o mesmo DPI como no arquivo tiff original.

Eu sou novo no FFMPEG e tentei seguir tentativas fracassadas de conseguir isso:

  1. ffmpeg -y -i test.tif test.jpg: Convertido com sucesso para jpg, mas o DPI foi reduzido de 300 para 96. (Verificado pressionando clique com o botão direito do mouse nas propriedades image - & gt; - & gt; guia "& gt; atributos de resolução horizontal e vertical")
  2. ffmpeg -y -i test.tif -c:v copy test.jpg: Convertido para jpg com 300 dpi, mas o formato de arquivo real ainda é tif. Parece que apenas a extensão é alterada para jpg.
  3. ffmpeg -y -i test.tif -pix_fmt <format> test.gif (tentei todos os 3 formatos suportados: yuvj420p, yuvj422p yuvj444p): convertido para jpg, mas o dpi foi alterado de 300 para 96.
  4. ffmpeg y -i test.tif -r 1 -q:v <range> test.jpg (tentou vários intervalo: 1 a 10): mesmo problema.

  5. Tentou -q:v e -qscale opções, mas é apenas alterar a largura e altura da imagem.

Finalmente ouvi sobre o ImageMagick e o problema foi resolvido na primeira tentativa usando o seguinte comando:

  1. magick convert "test.tif" "test.jpg": convertido para jpg e dpi é 300.

É possível conseguir o mesmo usando o FFMPEG? Se sim, por favor me ajude como eu estou preso aqui por muito tempo.

Anuj
fonte

Respostas:

0

Uma coisa a perceber é que o DPI não tem nada a ver com os dados de uma imagem. É uma construção baseada em recursos de saída de hardware. Uma imagem tem tantos pixels individuais, para os quais há dados no arquivo. A medição de quantos pixels cabem em uma polegada só é importante na saída de uma impressora ou exibição em um dispositivo. Os dados da imagem em si não têm "tamanho" inerente de pixels. Alguns formatos de arquivo de imagem suportam metadados que podem incluir "DPI", mas são essencialmente sem sentido para a própria imagem.

As informações de DPI que você está vendo podem ser atribuídas arbitrariamente pelos programas que você está usando para exibir os arquivos de imagem. Se o seu programa de pintura disser que a imagem é de 300 DPI, isso pode não ter nada a ver com os dados no arquivo, o que pode não ter uma marca DPI. Os arquivos TIFF podem conter tags de metadados (é por isso que o formato é "formato de arquivo de imagem marcado"), como DPI, mas não importa os dados da imagem.

Esses conceitos parecem ser especialmente difíceis para as pessoas entenderem, mas o fato é que um elemento de imagem (pixel) não tem um tamanho - apenas os dispositivos de saída têm medidas de DPI. Sua exigência para não mudar o DPI é a idéia de alguém de um requisito para preservar os dados, eu suspeito. BTW, como o JPEG é um esquema de compactação com perdas, a quantidade de compactação que você aplica é muito mais importante do que alguns metadados DPI arbitrários. Você pode estar destruindo essas imagens ao compactá-las no formato JPEG, preservando o rótulo DPI.

user8356
fonte