Je cherche un moyen de modifier le DPI sur les fichiers image PNG. L'utilisation d'ImageMagick est simple:
$ convert -density 150 -units pixelsperinch file.png file.png
Le problème est que je vais exécuter cette commande à partir de mon application, exécutée sur plusieurs machines virtuelles, sur lesquelles ImageMagick n'est pas installé. Je peux pousser les packages de mise à niveau vers ces machines virtuelles, mais dans le cas d'ImageMagick, cela ajouterait environ 30 Mo à un ensemble de mise à niveau, ce qui est un peu trop pour mon cas d'utilisation.
Pour faire court : existe-t-il un moyen de modifier le DPI sur un fichier PNG à l'aide d'un petit outil de ligne de commande (comme dans la taille du package)?
Facultativement, la modification des octets dans un fichier image brut serait également acceptable, si quelqu'un sait où les chercher ...
pHYs
morceau pré-créé à partir d'un PNG créé dans Photoshop.Réponses:
La taille de 2,10 Mo est-elle suffisante? Si oui, utilisez NConvert et une commande batch comme:
À quoi sert NConvert?
XnView est une application basée sur une interface graphique, vous pouvez modifier et manipuler des images à l'aide d'une interface utilisateur graphique. NConvert a à peu près les mêmes capacités que XnView, mais c'est un outil en ligne de commande et n'a pas d'interface utilisateur graphique. Vous pouvez utiliser NConvert dans des scripts Batch ou une autre application peut l'appeler.
Liens utiles
la source
Vous avez mentionné que vous exécuteriez cette commande «à partir de votre application», ce qui m'amène à croire que vous avez écrit cette application ou que vous la maintenez. Cela dit, il existe des API ImageMagick pour plusieurs langues, et vous pouvez utiliser l'une d'entre elles pour ajouter la fonctionnalité directement dans votre programme existant. L'augmentation de la taille du package dépendra de la langue dans laquelle votre application est écrite et de la liaison statique ou dynamique de la bibliothèque, mais j'imagine qu'elle serait nettement inférieure à une augmentation de 30 Mo.
Une autre option consiste à ne pas inclure l'intégralité du package ImageMagick. Vous pouvez télécharger le fichier Zip ImageMagick (qui ne fait que 13 Mo BTW), extraire uniquement l'
convert
outil et ses dépendances et le distribuer à vos machines virtuelles. Il existe un outil appelé Dependency Walker que vous pouvez utiliser pour déterminer les dépendances de l'convert
outil.la source
Utilisez l'
-size
indicateur dans le programme netpbm pnmtopng . Les unités utilisées sont des pixels par mètre. L'exemple suivant définira newfile.png sur 300 dpi.la source
Eh bien, vous pourriez potentiellement utiliser un script python.
Source .
la source
La bonne ligne de commande "Convert" pour Image Magick serait d'utiliser l'argument -resample:
la source