Как мне переустановить индикатор разрешения (DPI) файла BMP? - PullRequest
3 голосов
/ 01 января 2011

У меня есть BMP, помеченный как разрешение 299 DPI. Я хотел бы изменить это на 99 DPI.

Важно отметить, что маркер DPI в BMP не имеет структурного значения. Изображение имеет определенную ширину и высоту в пикселей . Приложение для отображения может показывать изображение любой ширины в дюймах.

Итак, DPI это просто подсказка.

Однако я имею дело со сторонним программным обеспечением, которое в зависимости от этого маркера ведет себя по-разному, поэтому мне нужно переустановить его.

Буду признателен за предложения о том, как сделать это программно в Java, а также в графических инструментах с графическим интерфейсом (например, Gimp).

Ответы [ 2 ]

2 голосов
/ 01 января 2011

для части Java, вы можете использовать библиотеку img4j .У вас есть кодер и декодер для BMP.Класс InfoHeader имеет iXpixelsPerM и iYpixelsPerM для установки разрешения.Вы можете проверить формат файла BMP здесь , чтобы получить больше информации.

Более того, поскольку библиотека с открытым исходным кодом, вы сможете проверить и понять, как работает код, и вы 'Вы сможете адаптировать его в соответствии с вашими потребностями (если он соответствует вашей модели лицензирования).

(С Новым годом! :)

2 голосов
/ 01 января 2011

В .Net вы можете установить свойство DPI изображения, используя метод SetResolution класса Bitmap. К сожалению, я не знаю, как вы можете сделать это на Java. [ Обновление . Первоначальный вопрос касался «как это сделать программно (особенно в Java)», поэтому я упомянул решение .Net.]

А вот как вы можете изменить свойство разрешения в GIMP: http://docs.gimp.org/en/gimp-image-print-size.html
В Paint .Net (бесплатный инструмент для редактирования изображений на основе .Net) вы должны перейти к изображению -> изменить размер -> изменить поле разрешения.

...