Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pictureBox Icon, потеря качества иконки 
V
    Опции темы
Rockie
Дата 9.1.2008, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



Здравствуйте!

Юзаю VS 2005, C# .NET 2.0.

На форме располагаю pictureBox. В него загружаю стандартную иконку INFO.ico из папки C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary\VS2005ImageLibrary\icons\WinXP (по дефолту в этой папке сначала находится архив с иконками). Выставляю свойство Size pictureBox-a в "StretchImage". Как видите на рисунке, иконка в дизайнере выглядит вполне прилично. Проблема в том, что по  ctrl+f5 иконка заметно теряет в качестве(см. скриншот).
Как исправить, хелп! =)

user posted image

p.s.: возможно у кого-то есть такая же иконка но более хорошего качества (эта 16*16 пикселей)?


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
informatik
Дата 9.1.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 3
Всего: 6



Судя по скриншоту можно быть на 100% уверенным что твоя картинка, ну никак не 16х16 пикс, а гораздо больше... 
(Я имею ввиду скриншот до запуска программы...).
Странная у тебя проблема...

А вообще, если уж значек 16х16 то и отображать его надо также, а не растягивать на такой размер... это не векторная графика

Это сообщение отредактировал(а) informatik - 9.1.2008, 21:55
--------------------
namespace informatik
PM MAIL   Вверх
Rockie
Дата 9.1.2008, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



Такая иконка используется в стандартном MessageBox. Ее можно видеть, если написать нечто вроде
Код

MessageBox.Show(" bla", "bla", MessageBoxButtons.OK, MessageBoxIcon.Information);

У меня пользовательский MessageBox, но я хочу сохранить один стиль со стандартными и вывести эту иконку. "INFO.ICO" я нашел, но не могу так же красиво отобразить. Прилагаю также файл с иконкой, ~24Kb.






--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
tol05
Дата 9.1.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 36
Всего: 170



я так и не нашел в сети ответа почему так происходит. Мое предположение такое: ты ведь добавляешь этот image как ресурс? Студия определяет его как иконку и режет качество под иконку. Можно просто добавить иконку эту в ресурсы и посмотреть в дизайнере. Уже будет совсем не то, что нужно... 
предлагаю поступить так
Код

Image image = Bitmap.FromFile(@"C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary\VS2005ImageLibrary\icons\WinXP\info.ico");
pictureBox1.Image = new Bitmap(image, pictureBox1.Width, pictureBox1.Height);



--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
informatik
Дата 9.1.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 3
Всего: 6



В студии эта иконка имеет размер примерно 34х34 пикселя... в два раза больше чем твоя..

Ну если ты хочешь такую же иконку, то нажимаешь PrintScreen, редактируешь и сохраняешь картинку в формате с прозрачным фоном(Gif, Ico, Png и т.д.). 

И усе...

Либо (я бы очень сам хотел узнать как это сделать) узнать как получить доступ к вот этим самым файлам студии, для отображения в своих формах - вот это было бы клево...

Вот, в формате PNG:
user posted image

Это сообщение отредактировал(а) informatik - 9.1.2008, 23:03
--------------------
namespace informatik
PM MAIL   Вверх
Rockie
Дата 9.1.2008, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



Вопрос решил, подсказали такое решение. В этом случае отображается нормально, используется тот самый файл студии smile:
Код

Icon icon = SystemIcons.Error;
Bitmap bmpIcon = new Bitmap(icon.Width, icon.Height);
Graphics gr = Graphics.FromImage(bmpIcon);
gr.DrawIcon(icon, 0, 0);
pictureBoxIcon.Image = bmpIcon;

tol05, informatik, спасибо что помогали в решении!




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
informatik
Дата 9.1.2008, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 3
Всего: 6



Вот именно это я тоже хотел знать.  smile 

Это сообщение отредактировал(а) informatik - 9.1.2008, 23:36
--------------------
namespace informatik
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.