"Quero alterar o DPI com o Imagemagick sem alterar o tamanho real dos bytes dos dados da imagem."
Isso é completamente impossível!
Porque:
more "Dots per Inch"
<==> more pixels per area
<==> more total pixels per image
<==> more total bytes per image
Além disso, você parece não entender o que é DPI na realidade:
- É um valor completamente abstrato que obtém valor prático apenas no contexto de saber também o tamanho absoluto da impressão ou renderização na tela ou no monitor:
- Você pode 'imprimir' a mesma imagem de 72x72 pixels em um quadrado de 1 polegada de largura: a impressão terá uma resolução de
72dpi
.
- Você também pode 'imprimi-lo' em um quadrado de 1/4 de polegada de largura: a impressão terá uma resolução de
288dpi
.
- ( Nota: se você o imprimir
288dpi
em um quadrado de 2,5 cm, não será mais a mesma imagem: será extrapolada pelo driver da impressora ou por algum outro mecanismo de filtragem e se tornará uma imagem de 288x288 pixels em vez de uma imagem de 72x72 pixels ... )
- Ambas as impressões terão as mesmas informações de imagem - a imagem de 288 dpi não terá mais de repente.
Se você deseja imprimir a imagem original de 72 x 72 pixels como um quadrado de 1 polegada de largura, mas em 288dpi
, precisará redimensionar a imagem (nesse caso, ampliá-la). Para cada 1 pixel no original, você precisará de 4 pixels da nova imagem aprimorada. Agora, existem algoritmos diferentes que podem ser usados para calcular quais valores de cores esses 4 pixels (3 deles são novos):
- você pode dar a eles o mesmo que o pixel original (que é um algoritmo muito "bruto",
- ou você pode fazer uma média do valor da cor do pixel original com os valores da cor dos pixels vizinhos.
De qualquer forma, você está criando uma imagem maior que consiste em 288 linhas de pixels, cada uma com 288 pixels de altura (288x288 pixels).
O que o Gimp faz por você quando você acessa "Imagem -> Tamanho da impressão": simplifica o processo de recalcular as alterações necessárias nos tamanhos absolutos de pixels, tornando-o mais fácil de usar. Para esse fim ...
- ... pergunta primeiro sobre o DPI porque uma determinada impressora não pode alterar sua resolução de impressão arbitrariamente (algumas podem oferecer não apenas uma, mas talvez até 2 ou 3 resoluções diferentes). Por isso, pergunta em qual resolução você deseja imprimir. Essa é a primeira informação.
- ... então ele também pede para o segundo pedaço de informação: em que tamanho (em
cm
, mm
ou inch
) a impressão deve aparecer no papel.
De acordo com essas duas informações, o Gimp calcula o número total de pixels que ele deve usar (extrapolar do número original de pixels) para preencher o espaço solicitado na resolução solicitada.
No entanto, aumentar a escala de uma imagem raster, fazendo com que ela contenha mais pixels, não adiciona informações reais e apenas adiciona "qualidade" a ela, que é fictícia. Pode parecer melhor para o olho humano se o seu algoritmo de aumento de escala for "bom". E ficará feio se você dobrar, triplicar ou quadruplicar os pixels existentes, como fazem alguns algoritmos simples.
Para imagens rasterizadas,
a configuração de DPI é relevante apenas no contexto de impressão ou exibição . Como as impressoras ou monitores deram, resoluções fixas. Portanto, são informações que apenas ...
- ... um driver de impressora ou
- ... um aplicativo de processamento de imagem que suporta impressão
precisa saber.
E a documentação do ImageMagick está totalmente de acordo comigo:
-density width
-density widthxheight
Defina a resolução horizontal e vertical de uma imagem para renderização em dispositivos.
Para imagens vetoriais ou formatos de arquivo
(como PDF ou PostScript), a configuração de DPI é extremamente importante no contexto de rasterização . Um DPI mais alto transferirá mais informações da imagem para o formato raster e, portanto, preservará mais detalhes da qualidade original real. Quando a conversão de uma imagem de vector de um determinado tamanho emmm
,cm
ouinch
em quadrícula com um DPI mais elevado irá traduzir-se directamente em um maior número total de pixels na imagem.
Além disso, o ImageMagick não suporta 'impressão' como tal. Em vez disso, apenas o ImageMagick ...
- ... converte arquivos de um determinado formato raster para outros formatos raster;
- ... ou reduz ou amplia imagens raster;
- ... ou altera os valores das cores de acordo com um algoritmo específico;
- ... ou recorta imagens, sobrepõe-as, inverte-as, espelha-as;
- ...e o que não....
... mas para imprimir as imagens manipuladas, você precisa usar um programa diferente.
Alguns formatos de imagem (TIFF, PNG, ...) suportam o armazenamento interno de uma configuração de DPI em seus metadados.
Mas isso não passa de um atributo 'dica' que não altera a imagem raster subjacente. Essa é a razão pela qual você fez essa descoberta:
"Quando eu checo o arquivo, ele permanece o mesmo."
Essa 'dica' pode ser avaliada automaticamente por drivers de impressora ou por programas de criação de páginas como o LaTeX. Na ausência de tais 'dicas' de DPI (ou se de alguma forma elas não se apresentarem da maneira que o LaTeX espera que sejam), o LaTeX ainda deve poder receber a ordem de renderizar qualquer imagem em uma página da maneira que se espera. para - ele precisa de um código LaTeX mais explícito ao redor da imagem!
Alguns outros formatos de imagem (JPEG (?), BMP, ...) nem mesmo suportam o armazenamento de uma dica de DPI em seus metadados internos.
Portanto, o Gimp suporta apenas o que você vê fazendo "Imagem -> Tamanho da impressão", porque deseja imprimir uma imagem. Com o ImageMagick, você não pode imprimir.
Continue fazendo o que você quer fazer com o Gimp ao imprimir. Não faz sentido com o ImageMagick.
Consulte também este trecho de documentação adicional de IM , que explica o mesmo tópico em palavras diferentes.
Então, o que resta é o seguinte:
- Se você 'manipula' sua imagem com o Gimp e, em seguida, incorpora o resultado no LaTeX, a página parece que você espera.
- Se você 'manipular' sua imagem com o ImageMagick e incorporar o resultado no LaTeX, a página não será como o esperado.
Forneça o seguinte para resolver o problema acima:
- a versão exata da sua instalação do ImageMagick (saída completa de
convert -version
e convert -list configure
);
- (um link para uma) imagem de amostra original;
- (um link para) mesma imagem manipulada pelo Gimp;
- (um link para) mesma imagem manipulada pelo ImageMagick.
Desta forma, podemos ajudar a resolver o problema.
Mas observe: este é um problema diferente do que o assunto / título atual pergunta: "Quero alterar o DPI com o Imagemagick sem alterar o tamanho real dos bytes dos dados da imagem"
Atualizar
Como ainda não está claro para alguns leitores o que observei acima, aqui está mais uma tentativa ...
Tudo o que é anotado como 'Resolução' ou 'Densidade' dentro de um arquivo de imagem é um atributo de metadados . Não tem influência sobre o número de pixels reais descrito pelo arquivo e é completamente irrelevante a esse respeito. É apenas uma dica de que um dispositivo de impressão ou renderização ou um aplicativo pode ou não seguir ao imprimir, renderizar ou exibir a imagem.
Para esse fim, são apenas alguns números armazenados no arquivo de imagem. Esses números informam aos dispositivos de saída, como impressoras, e mostram quantos pontos (ou pixels) por polegada a imagem deve ser exibida. Para formatos vetoriais como PostScript, PDF, MWF e SVG, ele diz à escala de pixels para desenhar quaisquer coordenadas do mundo real usadas pela imagem.
Um exemplo, onde o valor da resolução observado pelo ImageMagick dentro dos metadados da imagem NÃO é respeitado por um aplicativo é o Adobe Photoshop. O Photoshop armazena suas dicas sobre a resolução de impressão ou exibição desejada em um perfil proprietário chamado 8bim . O ImageMagick não toca nesse perfil, mesmo quando solicitado a gravar uma alteração de resolução nos metadados de um arquivo de imagem. Por outro lado, o Photoshop ignorará todas as dicas de resolução armazenadas pelo ImageMagick no campo de metadados padrão que é definido para esse fim assim que ele vir seu próprio perfil 8bim .
O PO deveria ter escolhido o cabeçalho:
- "Quero alterar o DPI (dica de resolução de metadados) com o ImageMagick sem alterar o número real de pixels na imagem"
a fim de evitar todos os mal-entendidos ...
^
ícone à esquerda da resposta), não apenas "aceite" assim que tiver reputação pessoal suficiente (acho que você precisa +15) ...