Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2014, 17:40   #1
IT-Lopata
7 - классник
Форумчанин
 
Аватар для IT-Lopata
 
Регистрация: 27.03.2014
Сообщений: 181
По умолчанию Как добраться до данных растра pictureBox1 ?

На формочку кинул pictureBox1 и загрузил изображение, хотелось получить доступ к пикселям изображения, а где они находятся я так что-то и не нашел?


тип Color не позволяет писать значения в его R,G,B (так как они доступны для чтения) а как тогда задавать цвет?
Код:
        private void button1_Click(object sender, EventArgs e)
        {
            //pictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipY);
            Bitmap bm = (Bitmap)pictureBox1.Image;
            int x = bm.Width;
            int y = bm.Height;

            for (x = 0; x < bm.Width; x++)
                for (y = 0; y < bm.Height; y++) 
                {
                    Color col = bm.GetPixel(x, y);
                    
                    byte newR = (byte)(255 - col.R); 
                    byte newG = (byte)(255 - col.G);
                    byte newB = (byte)(255 - col.B);
                    Color newCol = new Color();
                    newCol.R = newR;
                    newCol.G = newG;
                    newCol.B = newB;


                    bm.SetPixel(x, y, newCol);
                }

                pictureBox1.Image = bm;
                pictureBox1.Refresh();
        }
все понял как.

Код:
        private void button1_Click(object sender, EventArgs e)
        {
            //pictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipY);
            Bitmap bm = (Bitmap)pictureBox1.Image;
            int x = bm.Width;
            int y = bm.Height;

            for (x = 0; x < bm.Width; x++)
                for (y = 0; y < bm.Height; y++) 
                {
                    Color col = bm.GetPixel(x, y);
                    
                    byte newR = (byte)(255 - col.R); 
                    byte newG = (byte)(255 - col.G);
                    byte newB = (byte)(255 - col.B);
                    Color newCol = Color.FromArgb(newR, newG, newB);



                    bm.SetPixel(x, y, newCol);
                }

                pictureBox1.Image = bm;
                pictureBox1.Refresh();
        }

Последний раз редактировалось IT-Lopata; 28.03.2014 в 18:15.
IT-Lopata вне форума Ответить с цитированием
Старый 28.03.2014, 18:17   #2
IT-Lopata
7 - классник
Форумчанин
 
Аватар для IT-Lopata
 
Регистрация: 27.03.2014
Сообщений: 181
По умолчанию

Парни, а как поверх одной картинки наложить другую? на фоне нарисовать изображение, как bitblt из винапи

написал код но он не чего не делает, а по идее щелкая по первому pictureBox1 у меня должно копироваться изображение из pictureBox2
Код:
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            MouseEventArgs eM = (MouseEventArgs)e;
            cx = eM.X;
            cy = eM.Y;
            textBox1.Text = string.Format("x={0} y={1}", cx, cy);
            DrawTottoro();
        }

        private void DrawTottoro()
        {
            Graphics g = Graphics.FromImage((Bitmap)(pictureBox2.Image));

            g.DrawImage((Bitmap)pictureBox1.Image, new Point(cx, cy));

            pictureBox1.Refresh();
      
        }
как нужно рисовать одно изображение поверх другого?


поменял местами все заработало
Код:
       private void DrawTottoro()
        {
            Graphics g = Graphics.FromImage((Bitmap)(pictureBox1.Image));

            g.DrawImage((Bitmap)pictureBox2.Image, new Point(cx, cy));

            

            pictureBox1.Refresh();
      
        }

Последний раз редактировалось IT-Lopata; 28.03.2014 в 18:49.
IT-Lopata вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добраться до исходника. skin11 Общие вопросы .NET 5 16.10.2012 12:53
Как добраться до папки юзера? pnz_punisher Общие вопросы Delphi 2 30.08.2011 06:23
Как добраться до логов Винды? puzik_off Win Api 7 24.02.2010 09:47
Как добраться до определенного символа в Edit Ivanko Помощь студентам 2 08.02.2010 11:49
Как в PictureBox1 загрузить картинку из WebBrowser1 reyn90 Помощь студентам 5 09.06.2009 23:34