Отключение сглаживающийся на [закрытом] изображении WPF

Оказывается, что Вам не нужны явные текстовые пути. Firefox 3 имеет только частичную поддержку тегов выравнивания по вертикали (, посмотрите этот поток ). Также кажется, что доминирующая базовая линия только работает, когда применено стилем, тогда как текстовая привязка может быть частью стиля или атрибута тега.



  Vertical




  Horizontal




  Bit of Both

Это работает в Firefox. К сожалению, Inkscape, кажется, не обрабатывает доминирующую базовую линию (или по крайней мере не таким же образом).

11
задан tomfanning 20 May 2013 в 14:14
поделиться

2 ответа

Насколько мне известно, WPF всегда выполняет сглаживание при масштабировании растрового изображения. Однако вы сможете достичь своей цели, избегая масштабирования растрового изображения.

Есть два шага:

  1. Установить SnapsToDevicePixels = "true" на вашем изображении
  2. Установить ScaleTransform на вашем изображении масштабировать его так, чтобы один пиксель устройства = один пиксель растрового изображения

Для вычисления необходимого ScaleTransform вычислите DPI вашего экрана следующим образом:

var DPI = Win32Functions.GetSystemMetrics(SM_CYICON) / SystemParameters.IconHeight * 96;

, а затем для растрового изображения выполните:

var scale = bitmapDPI / DPI;
var transform = new ScaleTransform(scale, scale);

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

17
ответ дан 3 December 2019 в 05:58
поделиться

На самом деле это не сглаживание - проблема связана с позиционированием субпикселей, я писал об этом (и об элементе управления, который решает проблему) в моем блоге по адресу:

http://www.nbdtech.com/blog/archive/2008/11/20/blurred-images-in-wpf.aspx

3
ответ дан 3 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

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