Добавление битмапа в неквадрат (полигон) - C#
Формулировка задачи:
Допустим есть битмап.
Есть полигон. Как залить битмап в полигон, чтобы полигон заполнился текстурой полностью? (размер текстуры заранее больше чем полигон)
Или если имеются еще какие-либо средства решения, буду благодарен за указания.
Bitmap mybitmap=new Bitmap(Bitmap.FromFile("C:\\somefilename.bmp")); GraphicsPath path = new GraphicsPath(); PointF[] sd=new PointF[3]; sd[0]=new PointF(2,2); sd[1]=new PointF(44,20); sd[2]=new PointF(25,40); path.AddPolygon(sd);
Решение задачи: «Добавление битмапа в неквадрат (полигон)»
textual
Листинг программы
using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; namespace WindowsFormsApplication8 { public partial class Form1 : Form { GraphicsPath path; Bitmap bmp; public Form1 ( ) { InitializeComponent(); bmp = (Bitmap)Image.FromFile( @"...." ); path = new GraphicsPath(); PointF[] sd = new PointF[3]; sd[0] = new PointF( 2, 2 ); sd[1] = new PointF( 44, 20 ); sd[2] = new PointF( 25, 40 ); path.AddPolygon( sd ); this.Paint += new PaintEventHandler( Form1_Paint ); } void Form1_Paint ( object sender, PaintEventArgs e ) { if ( bmp != null ) { var g = e.Graphics; // Change clip g.SetClip( path, CombineMode.Replace ); g.DrawImageUnscaled( bmp, 0, 0 ); g.ResetClip(); // other methods with normal region g.DrawEllipse( Pens.Red, 100, 100, 25, 25 ); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д