Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Отобразить картинку высокого качества в PictureBox


Автор: vinograd2008 23.2.2010, 14:02
Здравствуйте подскажите пожалуйста как показать изображения оригинального размера в PictureBox не потеряв при этом качество изображения?

В данном примере качество изображения теряется и изображение становится низкого качества, как сделать так чтобы изображение выводилось в PictureBox в высоком качестве?

Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace AnimalKingdom
{
    public partial class ImageForm : Form
    {
        int i = 0;

        public ImageForm()
        {
            InitializeComponent();
            timer1.Enabled = true;
            timer1.Interval = 1000;
            if (!timer1.Enabled)
            {
                timer1.Start();
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            i = i + 1;

            if (imageList1.Images.Count <= i)
                i = 0;

            pictureBox1.Image = imageList1.Images[i];
            pictureBox1.Size = new Size(300, 200);
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox1.Update();
        }
    }
}

Автор: N1ko 23.2.2010, 14:48
ImageList-> Image Bit Depth поменяй на самое большое значение в дизайнере форм
Либо в его свойствах измени ColorDepth

Автор: vinograd2008 23.2.2010, 15:08
Цитата(vinograd2008 @ 23.2.2010,  14:02)
Здравствуйте подскажите пожалуйста как показать изображения оригинального размера в PictureBox не потеряв при этом качество изображения?

В данном примере качество изображения теряется и изображение становится низкого качества, как сделать так чтобы изображение выводилось в PictureBox в высоком качестве?

Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace AnimalKingdom
{
    public partial class ImageForm : Form
    {
        int i = 0;

        public ImageForm()
        {
            InitializeComponent();
            timer1.Enabled = true;
            timer1.Interval = 1000;
            if (!timer1.Enabled)
            {
                timer1.Start();
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            i = i + 1;

            if (imageList1.Images.Count <= i)
                i = 0;

            pictureBox1.Image = imageList1.Images[i];
            pictureBox1.Size = new Size(300, 200);
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            pictureBox1.Update();
        }
    }
}

Написал строку  this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; в дизайнере формы никаких изменений не произошло изображение по прежнему плохого качества. Подскажите пожалуйста что еще можно сделать?

Автор: N1ko 23.2.2010, 15:56
Если оригинального размера, тогда не используй ImageList
Bitmap dd = new Bitmap("C:\\pic.jpg");
            pictureBox1.Image = dd;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)