Estamos usando FFMPEG em nosso aplicativo java e estou tentando converter um arquivo tiff para jpg, mas o requisito é manter o MESMO DPI do arquivo tiff original.
Sou novo no FFMPEG e tentei seguir tentativas fracassadas de conseguir isso:
ffmpeg -y -i test.tif test.jpg
: Convertido com sucesso para jpg, mas o DPI foi reduzido de 300 para 96. (Verificado pressionando o botão direito na imagem -> propriedades -> guia de detalhes -> atributos de resolução horizontal e vertical)ffmpeg -y -i test.tif -c:v copy test.jpg
: convertido para jpg com 300 dpi, mas o formato real do arquivo ainda é tif. Parece que apenas a extensão foi alterada para jpg.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.ffmpeg y -i test.tif -r 1 -q:v <range> test.jpg
(tentei vários intervalos: 1 a 10): Mesmo problema.Tentei
-q:v
e-qscale
opções, mas é apenas alterar a largura e a altura da imagem.
Finalmente ouvi falar do ImageMagick e o problema foi resolvido na primeira tentativa usando o seguinte comando:
magick convert "test.tif" "test.jpg"
: convertido para jpg e dpi é 300.
É possível conseguir o mesmo usando FFMPEG. Se sim, por favor me ajude, pois estou preso aqui há muito tempo.
Responder1
Uma coisa a perceber é que o DPI não tem nada a ver com os dados de uma imagem. É uma construção baseada nas capacidades de saída do hardware. Uma imagem possui tantos pixels individuais, para os quais existem dados no arquivo. A medição de quantos pixels cabem em uma polegada só importa na saída de uma impressora ou na tela de um dispositivo. Os dados da imagem em si não possuem “tamanho” inerente de pixels. Alguns formatos de arquivo de imagem suportam metadados que podem incluir “DPI”, mas isso não tem sentido para a própria imagem.
As informações de DPI que você vê 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 tem 300 DPI, isso pode não ter nada a ver com os dados do arquivo, que pode não ter uma tag DPI. Os arquivos TIFF podem conter tags de metadados (é por isso que o formato é "formato de arquivo de imagem marcado"), como DPI, mas isso não importa para os dados da imagem.
Esses conceitos parecem ser especialmente difíceis de serem entendidos pelas pessoas, mas o fato é que um elemento de imagem (pixel) não tem tamanho – apenas os dispositivos de saída têm medidas de DPI. Suspeito que sua exigência de não alterar o DPI seja a ideia de alguém de preservar dados. Aliás, como JPEG é um esquema de compactação com perdas, a quantidade de compactação aplicada é muito mais importante do que alguns metadados de DPI arbitrários. Você pode destruir essas imagens ao compactá-las no formato JPEG, preservando o rótulo DPI.