Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 Загрузка PNG из ресурсов - неправильные размеры рисунка  [new]
JohnSparrow
Member

Откуда:
Сообщений: 365
Доброго времени суток

В ресурсах приложения сть png-файл размером 16х16 32bpp и вот такой код его загрузки:
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.UriSource = new Uri(@"pack://application:,,,/WpfApplication3;component/Resources/Images/16x16_incorrect.png", UriKind.Absolute);
bi.EndInit();

ImageSource s = bi;

Полученный ImageSource используется для отображения рисунка (отображающий компонент - DocumentPanel - имеет свойство CaptionImage типа ImageSource). Проблема в том, что у полученного ImageSource свойства Width и Height равны 21.597, из-за чего на форме он отображается размером 21х21, т.е. выполняется stretch из 16х16. В итоге рисунок выглядит размытым.

Есть и другой рисунок (входит как ресурс в пример приложения с данным отображающим компонентом). Вот этот второй рисунок тоже PNG 16x16 32bpp, но отображается корректно, будучи загруженным тем же самым способом. При этом у его ImageSource Width=Height=16.002. Вопрос: почему так получается и что можно сделать, чтобы мой рисунок тоже загружался размером 16х16?

Сам отображающий компонент ни при чем, разницу между рисунками ("правильным" и "неправильным") видно уже на этапе загрузки, который с компонентом DocumentPanel никак не связан). Проблема в самих рисунках.

На всякий случай, вот ссылки на два рисунка png 16x16 32bpp:
- "правильный" (после загрузки ImageSource.Width = Height = 16.002)
- "неправильный" (после загрузки ImageSource.Width = Height = 21.597)

А вот так выглядят оба при отображении:

К сообщению приложен файл. Размер - 0Kb
19 сен 10, 19:54    [9463558]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка PNG из ресурсов - неправильные размеры рисунка  [new]
JohnSparrow
Member

Откуда:
Сообщений: 365
Уже дали ответ в другом месте. Разрешение должно быть 96 dpi - такое оно в WPF по умолчанию. У меня было 71 dpi.
19 сен 10, 20:55    [9463774]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить