Создайте эффект лупы для картинной коробки
Я хотел бы знать, как создать эффект увеличительного стекла для Picturebox. Не увеличивать изображение, а увеличивать часть изображения в элементе управления PictureBox (круг или прямоугольник) и устанавливать размер стекла и коэффициент увеличения.
Может работать только в элементе управления Picturebox.
Язык: C#
Заранее спасибо!
2 ответа
По сути, вам понадобятся две коробки с картинками. Один для всего изображения, а другой для увеличенной части. Кроме того, вы должны разместить увеличенное изображение в соответствии с положением мыши пользователя.
Вы найдете хорошую статью об этом по адресу http://www.codeproject.com/Articles/21097/PictureBox-Zoom. Просто измените источник, чтобы показывать второй блок изображения в соответствующем месте (под позицией курсора пользователя).
Вам нужно 2 объекта для Picturebox, один для самого изображения и второй для увеличенной области.
Затем загрузите изображение в память, вы не указали источник изображения, но в любом случае я рекомендую использовать потоки.Затем создайте растровое изображение в памяти.Используя метод Image, установите свойство picturebox.Чтобы создать исходное изображение для увеличенного изображения, вам необходимо клонировать выбранную деталь (вычислить размеры новой области изображения). Все это не так тривиально, как вы можете ожидать, так как метод clone принимает объекты Rectangle в качестве селектора области и обычно работает с прямоугольниками, а не с кругами, чтобы скопировать выделение.Я также рекомендую Dispose() неиспользуемые растровые объекты как можно скорее.Надеюсь это поможет.