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

  • Автор темы Автор темы arhip1985
  • Дата начала Дата начала

arhip1985

Client
Регистрация
31.10.2011
Сообщения
3 052
Реакции
796
Баллы
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, как оно заполняется тем, что нужно после отработки метода?
 
Ну тут все просто. dst это холст определенных размеров, который передается художнику gfx в методе Graphics.FromImage(dst). Теперь художник gfx будет постоянно хранить ссылку на холст dst и может рисовать на нем все что захочет. Можно попросить художника срисовать с другого холста, передав в метод gfx.DrawImage() ссылку на исходный рисунок src, координаты точки, с которой он начнет рисовать на холсте, координаты точки, с которой он начнет срисовывать с исходного рисунка и размер срисовываемого участка по ширине и высоте в пикселях. Метод gfx.DrawImage() можно вызывать сколько угодно раз, рисуя поверх уже нарисованного.
 
  • Спасибо
Реакции: arhip1985

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