как работает DrawImage() ?

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
Пытаюсь повесить часть картинки на кнопку, поковырявшись в гугле с запросами, слепил кое-как, но работает не из-за понимания логики, а благодаря перебору вариантов, вот код:
C#:
var src = Bitmap.FromFile("D:\\ххх\\body.jpg");
var dst = new Bitmap(32, 32, src.PixelFormat);
var gfx = Graphics.FromImage(dst);
var rec = new Rectangle(0, 0, dst.Width, dst.Height);
gfx.DrawImage(src, 0, 0, rec, GraphicsUnit.Pixel);
button2.Image = dst;
то, что на картинку кнопки надо вешать dst убедился перебором вариантов, а почему так? основная работа по выделению области картинки происходит в gfx.DrawImage() , как оно попадает в dst ? с картинками вообще не работал, что к чему?
в gfx.DrawImage() нет же out или ref dst, как оно заполняется тем, что нужно после отработки метода?
 

freeman

Client
Регистрация
31.07.2010
Сообщения
130
Благодарностей
138
Баллы
43
Ну тут все просто. dst это холст определенных размеров, который передается художнику gfx в методе Graphics.FromImage(dst). Теперь художник gfx будет постоянно хранить ссылку на холст dst и может рисовать на нем все что захочет. Можно попросить художника срисовать с другого холста, передав в метод gfx.DrawImage() ссылку на исходный рисунок src, координаты точки, с которой он начнет рисовать на холсте, координаты точки, с которой он начнет срисовывать с исходного рисунка и размер срисовываемого участка по ширине и высоте в пикселях. Метод gfx.DrawImage() можно вызывать сколько угодно раз, рисуя поверх уже нарисованного.
 
  • Спасибо
Реакции: arhip1985

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)