Изменение размеров изображения в cm C#

В этих микросравнительных тестах math.sqrt будет медленнее из-за небольшого времени, это берет к поиску sqrt в математическом пространстве имен. Можно улучшить его немного с

 from math import sqrt

Даже тогда, хотя, выполняя несколько изменений через timeit, показывают, что небольшое (4-5%-е) преимущество производительности для "x **.5"

интересно, делая

 import math
 sqrt = math.sqrt

ускорило его еще больше, к в 1%-м различии в скорости, с очень небольшим статистическим значением.

я повторю Kibbee и скажу, что это - вероятно, преждевременная оптимизация.

5
задан skaffman 19 May 2011 в 09:37
поделиться

4 ответа

Это действительно зависит от того, в каком разрешении пользователь будет печатать изображение (размеры в сантиметрах имеют мало смысла, кроме как при печати). Если пользователь хочет сделать печать, скажем, с разрешением 200 dpi, тогда изображение должно быть (10 / 2,54 * 200) на (6,88 / 2,54 * 200) пикселей (деление на 2,54 необходимо для преобразования между сантиметрами и дюймами. ). Необходимое разрешение во многом зависит от типа изображения и требований пользователя к качеству.

Поэтому просто сказать «Я хочу изменить размер до X на Y см» не имеет смысла.

В качестве примера кода о том, как выполнить фактическое изменение размера после того, как вы определили необходимый размер изображения, этот SO-ответ должен покрыть ваши потребности.

4
ответ дан 13 December 2019 в 22:11
поделиться

Форматы файлов изображений, такие как JPG и TIFF, имеют заголовок EXIF ​​, который содержит такую ​​информацию, как разрешение по горизонтали и вертикали.

Таким образом, если вы получаете изображение с этими метаданными, вы можете проверить печатаемый размер.

double DPC = Image_DPI * 0.393700787;

double widthInCm = Image_Width * DPC;
double heightInCm = Image_Height * DPC;

if (widthInCm <= 10 && heightInCm <= 6.88) // do stuff

Если вам нужно изменить размер изображения, чтобы он никогда не превышал эти печатаемые размеры, вы можете сделать это наоборот и рассчитать соотношение DPI, которое позволяет изображению с размерами Ш x В помещаться в пределах 10 см x Пределы 6,88 см.

2
ответ дан 13 December 2019 в 22:11
поделиться

Примерно из того, что говорит Фредрик: Я бы взял хороший DPI и потребовал бы, чтобы изображение было того же разрешения или больше (но с таким же соотношением сторон), а при экспорте / печати изображения измените размер изображения до DPI, используемого другой программой / принтером ...

0
ответ дан 13 December 2019 в 22:11
поделиться

Это может быть очень просто: большинство изображений хранят в себе количество пикселей на дюйм. Вычислите количество пикселей в каждом измерении вашего изображения и разделите его на количество дюймов (конвертируйте из сантиметров). Затем используйте исходные биты, просто измените поле для количества пикселей на дюйм (или, чаще, точек на дюйм).

Итак, ваше изображение должно быть 3,93 "x 2,71". Если ваше изображение имеет размер 393 x 271 пиксель, вы должны установить разрешение 100 x 100 пикселей на дюйм. Если ваше изображение имеет размер 39 пикселей x 27 пикселей, вы должны установить dpi на 10x10.

Хотя, вероятно, вам придется изменить размер, как объясняется другими ответами. :)

0
ответ дан 13 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: