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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2008, 13:03   #1
MAcK
Форумчанин
 
Регистрация: 09.11.2006
Сообщений: 274
Плохо Разбиение на части

вопрос: я загрузил картинку в Picturebox(300, 300; sizeMode = StretchImage) и хотел разбить на три части, но в копии загружается реальное изображение, а не то что видно в PictureBox, как можно решить проблему?
Вот сам код:

Код:
            PictureBox pc = new PictureBox();
            PictureBox pc2 = new PictureBox();
            PictureBox pc3 = new PictureBox();
            Bitmap temp = new Bitmap(100, 100);
            Graphics g = Graphics.FromImage(temp);
            g.DrawImage(pictureBox1.Image, 0, 0);

            pc.Image = temp;
            pc.Parent = panel3;
            pc.Left = 10;
            pc.Top = 10;
            pc.Width = 100;
            pc.Height = 100;
            pc.Visible = true;
            temp = new Bitmap(100, 100);
            g = Graphics.FromImage(temp);
            g.DrawImage(pictureBox1.Image, -100, 0);
            pc2.Image = temp;
            pc2.Parent = panel3;
            pc2.Left = 10 + 110;
            pc2.Top = 10;
            pc2.Width = 100;
            pc2.Height = 100;
            pc2.Visible = true;

            temp = new Bitmap(100, 100);
            g = Graphics.FromImage(temp);
            g.DrawImage(pictureBox1.Image, -200, 0);
            pc3.Image = temp;
            pc3.Parent = panel3;
            pc3.Left = 10 + 220;
            pc3.Top = 10;
            pc3.Width = 100;
            pc3.Height = 100;
            pc3.Visible = true;
            g.Dispose();
Единственный приличный формат, разработанный Microsoft'ом, - format c:
MAcK вне форума Ответить с цитированием
Старый 18.09.2008, 13:20   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

попробуйте так:
g.DrawImage(pictureBox1.Image, new Rectangle(-200, 0, 300, 300));


Для DrawImage(Image, Int32, Int32) :
Draws the specified image, using its original physical size, at the location specified by a coordinate pair.
alexBlack вне форума Ответить с цитированием
Старый 18.09.2008, 13:36   #3
MAcK
Форумчанин
 
Регистрация: 09.11.2006
Сообщений: 274
По умолчанию

Цитата:
Сообщение от alexBlack Посмотреть сообщение
попробуйте так:
g.DrawImage(pictureBox1.Image, new Rectangle(-200, 0, 300, 300));


Для DrawImage(Image, Int32, Int32) :
Draws the specified image, using its original physical size, at the location specified by a coordinate pair.
Спасибо, большое спасибо!

можешь объяснить эту строчку(особенно 300,300 - почему оно работает)?
g.DrawImage(pictureBox1.Image, new Rectangle(-200, 0, 300, 300));
Единственный приличный формат, разработанный Microsoft'ом, - format c:
MAcK вне форума Ответить с цитированием
Старый 18.09.2008, 13:47   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от MAcK Посмотреть сообщение
Спасибо, большое спасибо!

можешь объяснить эту строчку(особенно 300,300 - почему оно работает)?
g.DrawImage(pictureBox1.Image, new Rectangle(-200, 0, 300, 300));
DrawImage(Image, Rectangle)
Draws the specified Image at the specified location and with the specified size. (рисует указанный Image в указанном положении и указанного размера)

т.е. задаем размер и положение области для изображения. При рисовании выполняется масштабирование. Если указывать только положение, масштабирования не делается.

А 300 - вот отсюда:
Цитата:
я загрузил картинку в Picturebox(300, 300; sizeMode = StretchImage)

Последний раз редактировалось alexBlack; 18.09.2008 в 13:49.
alexBlack вне форума Ответить с цитированием
Старый 18.09.2008, 13:56   #5
MAcK
Форумчанин
 
Регистрация: 09.11.2006
Сообщений: 274
По умолчанию

БОЛЬШОЕ Спасибо
Единственный приличный формат, разработанный Microsoft'ом, - format c:
MAcK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разделение формы на 4 части za4ot Общие вопросы Delphi 2 03.07.2008 12:12
Разбиение дочернего окна на колонки... HunterMan Win Api 3 03.04.2008 23:19
Разбиение окна на области? HunterMan Win Api 2 03.04.2008 22:18
Разбиение матриц на макроблоки!!! metamfetamin Паскаль, Turbo Pascal, PascalABC.NET 3 02.11.2007 23:33
Случайное разбиение списка на множесво маленьких списков eXa Общие вопросы Delphi 5 15.08.2007 09:23