Ответ 1
DPI не имеет значения при работе с изображениями. Изображения измеряются в пикселях, так что это то, что вам нужно настроить. Вы можете смело игнорировать DPI, поскольку в этом контексте нет смысла.
Масштабирование не поможет вам здесь - помните, что вы работаете с пиксельным устройством, а не с векторами, поэтому холст должен быть уже того размера, который вы хотите использовать для печати и т.д., или у вас будет сниженное качество из-за интерполяции при масштабировании.
Вот как:
Вам необходимо предварительно определить размер холста в пикселях относительно того, какой размер вы хотите на последнем этапе.
Предположим, вы хотите распечатать изображение размером 15 x 10 см (или около 6 x 4 дюйма) @300DPI. Затем вы вычисляете пиксели:
Width : 10 cm * 300 / 2.54 = 1181 pixels
Height: 15 cm * 300 / 2.54 = 1772 pixels
Для дюймов просто умножайтесь с DPI (4 в!= 10 см, поэтому немного другой результат, цифры, выбранные для простоты):
Width : 4 in * 300 = 1200 pixels
Height: 6 in * 300 = 1800 pixels
Для вашего изображения при 26.45 см @300 DPI холст должен быть:
26.45 cm * 300 DPI / 2.54 inches = 3124 pixels.
Чтобы отобразить этот холст в меньшей области на экране, вы используете CSS для отображения элемента, например -
<canvas width="3124" height="3124" style="width:600px;height:600px;"></canvas>
Теперь вы можете рисовать на холсте в фактическом положении пикселя, и он будет отображаться на экране (но сохранить всю информацию на самом холсте). Если вы используете координаты мыши, вы пропорционально масштабируете положение мыши (холст pos = координата мыши * 3124px/600px).
Для масштабирования и т.д. это становится немного сложнее, но принцип остается: конечный размер вашего изображения должен быть конечным результатом.
О DPI: если это изображение было 72 DPI или 300 DPI, то количество пикселей было бы одинаковым. Причина, как уже упоминалось, заключается в том, что изображения измеряются в пикселях.
DPI - это произвольное значение, когда речь идет о пиксельных устройствах (растровые изображения, мониторы, камеры и т.д.) и используется только для программного обеспечения DTP, чтобы получить подсказку об измерении для окончательной печати, которая будет использовать эту информацию только для предварительного масштабирования изображение, относящееся к странице, которую вы используете для установки печати.