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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2010, 20:53   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
Вопрос Скопировать прямоугольную область одного Bitmap в другой

Код:
 
public Bitmap CaptureRect(Rectangle rect);
{
       Bitmap bmpScreenshot;
       Graphics gfxScreenshot;
       bmpScreenshot = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppRgb);

       gfxScreenshot = Graphics.FromImage(bmpScreenshot);

       gfxScreenshot.CopyFromScreen(rect.X, rect.Y, 0, 0,
           rect.Size, CopyPixelOperation.SourceCopy);
       return bmpScreenshot;
}
Вот делаю скриншот определённой области экрана, а мне нужно именно копировать с другого Bitmap, может кто подсказать как? То есть мне надо именно область определённую скопировать.
Casper-SC вне форума Ответить с цитированием
Старый 16.05.2010, 18:59   #2
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

Странно, что никто не знает!
Вот решение:
Код:
    public partial class Form1 : Form
    {
        const String picture = @"C:\Users\UserName\Desktop\для тестов скриншотов\Screenshot_11.png";

        public Form1()
        {
            InitializeComponent();
            pictureBox1.Image = (Bitmap)Bitmap.FromFile(picture);
        }

        public Bitmap CaptureScreenInRect(Bitmap sourceBMP, Rectangle rect)
        {
            Bitmap bmpScreenshot;
            Graphics gfxScreenshot;

            bmpScreenshot = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppRgb);

            gfxScreenshot = Graphics.FromImage(bmpScreenshot);
            gfxScreenshot.DrawImage(sourceBMP, 0, 0, rect, GraphicsUnit.Pixel);

            return bmpScreenshot;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm2 = new Form2();
            frm2.Show();

            Rectangle rectangle = new Rectangle(new Point(25, 0), new Size(200, 200)); //любые значения
            Bitmap BMP = (Bitmap)Bitmap.FromFile(picture);
            
            frm2.pictureBox1.Image =
                (Bitmap)CaptureScreenInRect(BMP, rectangle);
        }
    }
Casper-SC вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скопировать дублирующие строки с одного листа на другие листы mars56 Microsoft Office Excel 22 17.02.2010 19:58
Как скопировать строку из одного Stringgrida в другой? Pinkygirl Общие вопросы Delphi 1 16.01.2010 23:25
Нужно найти связную область одного цвета начиная с произвольной точки. kostyan142 Помощь студентам 9 12.01.2010 00:12
Как правильно скопировать данные с одного текстового файла в другой? Dem80 Общие вопросы C/C++ 2 06.03.2009 22:17
Как скопировать текст в буфер обмена с одного edit-a и вставить в другой SeRhy Общие вопросы Delphi 2 26.07.2008 23:02