Низкое разрешение изображения при использовании imageList в C # - PullRequest
0 голосов
/ 01 сентября 2011

Я использую imageList, в котором хранится 5 изображений, 3 из которых - .jpg и 2 .bmp.

Я использую эти изображения для изменения изображения в картинке с помощью таймера -

private void timer1_Tick(object sender, EventArgs e)
    {
        pictureBox1.Image = imageList1.Images[imgIndex++];
    }

где private int imgIndex = 0; установлено в классе Form.

У меня 2 проблемы, во-первых, разрешение изображений при отображении в окне изображения очень пиксельное и низкого качества, и яЯ попытался решить эту проблему, изменив ColorDepth в свойствах imageList, и я также попытался использовать различные форматы изображений, например .gif, .png и т. д., и изменить размер изображения, но это не работает.Как я могу получить лучшее разрешение?

Вторая проблема заключается в том, что, когда таймер достигает последнего изображения, приложение вылетает с ошибкой «InvalidArgument = значение« 5 »недопустимо для индекса».Имя параметра: index 'В imageList есть 5 изображений, и при отладке возникает ошибка из private int imgIndex = 0; как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

MSDN-> «ImageList обычно используется другими элементами управления, такими как ListView, TreeView или ToolBar». Хотя вы можете использовать ImageList по-своему, вы можете увидеть некоторые непреднамеренные побочные эффекты от его использования таким образом. Попробуйте использовать список изображений вместо ImageList.

List<Image> images = new List<Image>();

// assign images.  images.Add(...

private void timer1_Tick(object sender, EventArgs e)
    {
        pictureBox1.Image = images[imgIndex++];
    }
0 голосов
/ 01 сентября 2011

для 5 изображений с индексом 0, максимальный размер индекса должен быть не 4, а 4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...