RenderTargetBitmap DPI для приложения для рисования - PullRequest
0 голосов
/ 16 января 2012

Я использовал RenderTargetBitmap для рисования линий для моего приложения, как показано здесь .

Это работает, но я не совсем понимаю DPI. Если мне нужно нарисовать линии под мышью, я использую DPI 96. Все, что мне нужно, это знать, одинаково ли это для всех устройств и экранов, и, если нет, как найти правильное.

Ответы [ 3 ]

1 голос
/ 08 марта 2012

Это код, который я использую для получения DPI системы:

// Get system DPI
Matrix m = PresentationSource.FromVisual(Application.Current.MainWindow).CompositionTarget.TransformToDevice;
if (m.M11 > 0 && m.M22 > 0)
{
    dpiXFactor = m.M11;
    dpiYFactor = m.M22;
}
else
{
    // Sometimes this can return a matrix with 0s. Fall back to assuming normal DPI in this case.
    dpiXFactor = 1;
    dpiYFactor = 1;
}

Это будет коэффициент нормального DPI (96), который есть в системе.Система будет иметь горизонтальный DPI dpiXFactor * 96 и вертикальный DPI dpiYFactor * 96. Вы можете проверить это в Windows 7, перейдя в меню «Пуск» -> «dpi» и выбрав «Сделать текст и другие элементы больше или меньше».100% означает коэффициент 1 и значение DPI 96. 125% означает коэффициент 1,25 и значение DPI 120. 150% означает коэффициент 1,5 и значение DPI 144.

к отчету о сбое клиента, который, я думаю, мог быть вызван только матрицей преобразования, имеющей все нули.Возможно, существует более надежный способ получения DPI системы (может быть, pinvoke?), Но я не знаю об этом.

0 голосов
/ 08 марта 2012

Используемый вами DPI зависит от того, что будет сделано с выводом.Если ваш рисунок будет отображаться только на экране без увеличения, вы будете в порядке с разрешением 96 точек на дюйм, и вам больше не нужно об этом беспокоиться.Если вам нужно увеличить изображение, тогда более высокое разрешение может обеспечить лучшее взаимодействие с пользователем.Если печать вашего чертежа является важной частью вашего пользовательского опыта, то, вероятно, вам лучше будет работать с разрешением 300 точек на дюйм.

0 голосов
/ 08 марта 2012

DPI используется при рендеринге не векторных изображений.Вам не нужно беспокоиться об изменении DPI для разных мониторов или экранов, которые определяются ОС и оборудованием монитора.То, что вы должны учитывать, это уровень пикселизации, который вы хотите в своем изображении.Как правило, для небольших изображений с разрешением 100x100 пикселей должно быть приемлемо разрешение 96 DPI, а при любом разрешении от 100x100 до 300x300 значение 150-175 DPI.за все, что больше 300, вы можете пойти 300-400 DPI.После определенного момента его просто перебивают.Большая часть коммерческой печати выполняется с разрешением 350 точек на дюйм, если вы не делаете стохастическую печать.Если ваши линии рисования с обводкой 1-3, у вас должно быть все в порядке с 96 DPI, больше я бы предложил 150 DPI.

...