"Я хочу змінити DPI на Imagemagick, не змінюючи фактичний розмір байтів даних зображення."
Це абсолютно неможливо!
Оскільки:
more "Dots per Inch"
<==> more pixels per area
<==> more total pixels per image
<==> more total bytes per image
Крім того, ви, здається, не розумієте, що таке справжній DPI:
- Це абсолютно абстрактне значення, яке набуває практичної цінності лише в контексті пізнання абсолютного розміру роздруківки або візуалізації на екрані чи моніторі:
- Ви можете «роздрукувати» саме ті ж зображення розміром 72x72 пікселів на 1 дюймовий широкий квадрат: роздруківка матиме роздільну здатність
72dpi
.
- Ви також можете "роздрукувати" його на 1/4 дюймовому широкому квадраті: тоді роздруківка матиме роздільну здатність
288dpi
.
- ( Примітка. Якщо ви «роздрукуєте» його
288dpi
на 1-дюймовому квадраті, це вже не те саме зображення: воно зазнало б деяку екстраполяцію через драйвер принтера чи якийсь інший механізм фільтрації, і воно стане зображенням 288x288 пікселів замість зображення 72x72 пікселів ... )
- Обидва роздруківки матимуть однакову інформацію про зображення - зображення 288dpi несподівано матиме більше.
Якщо ви хочете роздрукувати оригінальне зображення розміром 72x72 пікселів 288dpi
у розмірі 1 дюймового квадрата, але в такому випадку, вам доведеться змінити масштаб зображення (у цьому випадку масштабування його). На кожні 1 пікселя в оригіналі вам знадобиться 4 пікселі нового масштабного зображення. Зараз існують різні алгоритми, за допомогою яких можна обчислити, які значення кольорів повинні мати ці 4 пікселі (3 з них нові пікселі):
- ви можете дати їм те саме, що і вихідний піксель (що є дуже "необробленим" алгоритмом,
- або ви можете виконати усереднення вихідного значення кольору пікселя із значеннями кольорів сусідніх пікселів.
У будь-якому випадку ви створюєте велике зображення, що складається з 288 рядків пікселів, кожен з яких має висоту 288 пікселів (288x288 пікселів).
Що Gimp робить для вас, коли ви переходите через "Зображення -> Розмір друку": це спрощує процес перерахунку необхідних змін в абсолютних розмірах пікселів, роблячи його більш зручним для користувачів. Для цієї мети...
- ... він спочатку запитує вас про DPI, оскільки даний принтер не може змінювати свою роздільну здатність друку довільно (деякі можуть запропонувати не одну, а, можливо, навіть 2 або 3 різних роздільної здатності). Тож він запитує, при якій роздільній здатності ви хочете надрукувати. Це перша інформація.
- ... то вона просить другу частину інформації: на який розмір (в
cm
, mm
або inch
) роздруківка повинна з'явитися на папері.
Відповідно до цих двох фрагментів інформації, Gimp потім обчислює загальну кількість пікселів, які він повинен використовувати (екстраполювати від початкової кількості пікселів), щоб заповнити запитуваний простір у запитуваній роздільній здатності.
Однак масштабування растрового зображення, вказуючи на те, що воно містить більше пікселів, не додає до нього реальної інформації, а лише додає йому «якість», яке є вигаданим. Для людського ока це може виглядати приємніше, якщо алгоритм збільшення масштабів "хороший". І це буде виглядати некрасиво, якщо ви просто подвоюєте, розмножуєте чи вчетверо збільшуєте наявні пікселі, як це роблять деякі прості алгоритми.
Для растрових зображень
налаштування DPI є актуальним лише в контексті друку або відображення . Тому що принтери чи монітори давали фіксовану роздільну здатність. Для цього це інформація, яка лише ...
- ... драйвер принтера або
- ... програма для обробки зображень, яка підтримує друк
необхідно знати.
І документація ImageMagick повністю відповідає мені:
-density width
-density widthxheight
Встановіть горизонтальну та вертикальну роздільну здатність зображення для візуалізації на пристрої.
Для векторних зображень або форматів файлів
(таких як PDF або PostScript), налаштування DPI є надзвичайно важливим в контексті растерізації їх. Більш висока DPI передасть більше інформації про зображення у растровий формат і, таким чином, збереже більше деталей від реальної оригінальної якості. При перетворенні векторного зображення заданого розміру вmm
,cm
абоinch
в растру з більш високим DPI буде безпосередньо перевести в більш високе число загальних пікселів в зображенні.
Також ImageMagick не підтримує "друк" як такий. Натомість ImageMagick лише ...
- ... перетворює файли з заданого растрового формату в інші растрові формати;
- ... або він зменшує масштаб або зменшує растрові зображення;
- ... або це змінює значення кольорів відповідно до певного алгоритму;
- ... або він обробляє зображення, накладає їх, перевертає, дзеркально відображає їх;
- ... а що-ні ...
... але для друку маніпульованих зображень потрібно використовувати іншу програму.
Деякі формати зображень (TIFF, PNG, ...) підтримують внутрішнє зберігання параметрів DPI у своїх метаданих.
Але це не більше ніж атрибут 'натяк', який не змінює базовий растровий образ. Ось чому ви зробили це відкриття:
"Коли я перевіряю файл, він залишається таким же."
Цей "підказку" можливо, можливо, автоматично оцінити драйверами принтерів або програмами створення сторінок, такими як LaTeX. За відсутності таких натяків на DPI (або якщо вони якимось чином не представляють себе так, як LaTeX очікує від них), LaTeX все ще може мати команду відтворювати будь-яке зображення на сторінці так, як це очікує. до - для зображення йому потрібен лише явніший код LaTeX!
Деякі інші формати зображень (JPEG (?), BMP, ...) навіть не підтримують збереження натяку на DPI на їх внутрішні метадані.
Тож Gimp підтримує лише те, що, як ви бачите, робить із "Зображення -> Розмір друку", оскільки він хоче надрукувати зображення. З ImageMagick ви не можете друкувати.
Продовжуйте робити те, що ви хочете робити з Gimp під час друку. З ImageMagick це не має сенсу.
Дивіться також цей додатковий фрагмент документації щодо чату , який пояснює ту саму тему різними словами.
Отже, що залишається, це:
- Якщо ви «маніпулюєте» своїм зображенням за допомогою Gimp, а потім вставляєте результат у LaTeX, сторінка виглядає так, як ви цього очікуєте.
- Якщо ви "маніпулюєте" своїм зображенням за допомогою ImageMagick, а потім вставляєте результат у LaTeX, сторінка виглядає не так, як ви очікували.
Будь ласка, вкажіть наступне, щоб вирішити вказане вище питання:
- точну версію установки ImageMagick (повний вихід
convert -version
та convert -list configure
);
- (посилання на) вихідне зразкове зображення;
- (посилання на) те саме зображення, яке маніпулює Gimp;
- (посилання на) те саме зображення, яке маніпулює ImageMagick.
Таким чином ми можемо допомогти вирішити проблему.
Але зауважте: це інша проблема, ніж запитання вашого поточного предмета / заголовка: "Я хочу змінити DPI на Imagemagick без зміни фактичного розміру байтів даних зображення"
Оновлення
Оскільки деяким читачам досі не зрозуміло, що я зазначив вище, ось ще одна спроба ...
Те, що зазначається як "Роздільна здатність" або "Щільність" у файлі зображення, є атрибутом метаданих . Це не впливає на кількість фактичних пікселів, описаних файлом, і в цьому відношенні абсолютно не має значення. Це лише натяк, до якого друкований або рендерируючий пристрій чи додаток можуть або не дотримуватися під час друку, надання чи відображення зображення.
Для цього достатньо лише декілька номерів, що зберігаються у файлі зображень. Ці числа повідомляють пристрої виводу, такі як принтери, і відображає, скільки точок (або пікселів) на дюйм зображення повинно відображатися. Для таких векторних форматів, як PostScript, PDF, MWF та SVG, він повідомляє піксельній шкалі намалювати будь-які координати реального світу, використовувані зображенням.
Одним із прикладів, коли значення роздільної здатності, відмічене ImageMagick всередині метаданих зображення, НЕ визнається програмою, - Adobe Photoshop. Photoshop зберігає свої підказки про бажану роздільну здатність друку чи відображення у фірмовому профілі під назвою 8bim . ImageMagick не торкається цього профілю, навіть коли його вимагають написати зміну роздільної здатності в метадані файлу зображення. Photoshop, з іншого боку, буде ігнорувати всі підказки щодо роздільної здатності, що зберігаються ImageMagick, інакше стандартне поле метаданих, яке визначено для цієї мети, як тільки побачить власний профіль 8bim .
ОП має обрати заголовок:
- "Я хочу змінити DPI (натяк на роздільну здатність метаданих) на ImageMagick, не змінюючи фактичну кількість пікселів на зображенні"
щоб уникнути всіх непорозумінь ...
^
значок ліворуч від його відповіді), а не просто «прийняти», як тільки у вас буде достатня особиста репутація (я думаю, вам потрібно +15) ...