Изображение PNG картинки TikZ, созданное классом отдельного документа, имеет неправильные размеры.

Изображение PNG картинки TikZ, созданное классом отдельного документа, имеет неправильные размеры.

Рассмотрим следующую рукопись LaTeX, в которой standaloneкласс документа используется для генерации как изображения, PDFтак и PNGрисунка TikZ.

\documentclass[tikz,convert]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) -- (1,1)
   [rounded corners] -- (2,0) -- (3,1)
   [sharp corners] -- (3,0) -- (2,1);
\end{tikzpicture}
\end{document}

Получившееся PDFизображение (это скриншот):

Полученное PDF-изображение

Получившееся PNGизображение:

Полученное изображение PNG

Почему PNGизображение отличается, инеправильный, размеры файла PDF?

решение1

Концептуально у растровых изображений нет размера, у них просто есть количество пикселей. Как указано в standaloneруководстве, класс говорит, convertчто нужно принять 300 точек на дюйм, что делает изображение с высоким разрешением для печати, но разрешение изображения по умолчанию для pdftex составляет 72 точки на дюйм, на самом делеФайлы png могут хранить предполагаемый размер своих пикселей.но большинство этого не делает, и даже если и не делает, все системы используют подсказку.

так что любой из

  \fbox{\includegraphics[scale=.24]{file.png}}% 72/300=.24

или

 {\pdfimageresolution=300 \fbox{\includegraphics{file.png}}}

будет того же размера, что и

 \fbox{\includegraphics{file.pdf}}

решение2

Нет. Это не так. Это зависит от того, как вы это измеряете.

Измерение в MS Word:

Три изображения с разным разрешением, размещенные в Word:

введите описание изображения здесь

При печати:

введите описание изображения здесь

Измерение в LaTeX:

Код:

    \documentclass[]{standalone}
    \usepackage{graphics}
    \begin{document}
    \noindent
    \includegraphics{aaa.pdf}
    \includegraphics{aaa.png}
    \end{document}

Измерение на экране при 100% увеличении просмотрщика PDF-файлов:

введите описание изображения здесь

Измерение на веб-странице:

Вы не можете полагаться на размер PNG, который вы видите в веб-браузере, поскольку они обрабатывают изображения по-разному (глянь сюда)

Изображение JPEG с разрешением 1200 точек на дюйм, загруженное на Imgur и просмотренное через веб-браузер:

введите описание изображения здесь

Изображение PNG с разрешением 300 точек на дюйм, загруженное на Imgur и просмотренное через веб-браузер:

введите описание изображения здесь

Изображение JPEG с разрешением 50 точек на дюйм, загруженное на Imgur и просмотренное через веб-браузер:

введите описание изображения здесь

Если вы хотите увидеть правильное измерение в вашем веб-браузере, вам нужно сгенерировать ваш PNG с правильным dpi. Смотрите следующее упражнение:

Мой экран 2560x1440.

Горизонтальный размер экрана: около 23,5 дюймов

Разрешение экрана 2560 точек/23,5 дюйма = 109 точек на дюйм.

Я создал PNG с разрешением примерно 110 dpi.

Я измеряю горизонтальный размер на экране с помощью веб-браузера:

введите описание изображения здесь

решение3

В руководстве пользователя standalone(v1.2 - 2015/07/15) объясняется, почему сгенерированное изображение PNG не имеет ожидаемых физических размеров, а также приводятся методы правильной установки этих размеров.

Почему изображение PNG имеет неправильные физические размеры

Согласно разделу 4.6.1 «Настройки конвертации» на стр. 15

используются следующие настройки по умолчанию: [...] плотность 300 точек на дюйм

«dpi» — это сокращение от «точек на дюйм», также известное как «пиксели на дюйм» («ppi»). Чтобы на экране отображались правильные размеры, ppi, используемые для создания PNG, должны соответствовать ppi вашего экрана.

Чтобы узнать ppi вашего экрана, следуйте инструкциямэтот простой методдано на ВикипедииПлотность пикселейстраница. Метод заключается в использовании линейки, поднесенной к экрану, для измерения длины линии, которая, как известно, состоит из определенного количества пикселей.

Как обеспечить правильные физические размеры изображения PNG

Таблица 1 на стр. 17 предлагает два метода, чтобы гарантировать, что сгенерированное изображение PNG имеет желаемые физические размеры. Оба метода состоят в назначении значения опции convertкласса документа следующим образом:

\documentclass[tikz,convert={...}]{standalone}
  1. Установите convert={density=<d>}, где <d>находится ppi вашего экрана.

  2. Установите convert={size=<w>x<h>}, где <w>x<h>— размеры в пикселях изображения PNG, которое, как известно, имеет желаемые физические размеры при отображении на экране.

    В данном случае, поскольку вы заявили, что скриншот изображения PDF имеет правильные физические размеры, используйте его размеры в пикселях, а именно 137x50. Если вы используете macOS, их можно прочитать непосредственно из Finder.

Связанный контент