求助 我已经用C#做了个拼图小游戏,我想实现:上传照片,代码比例切割成9份,最好有完整代码,谢谢
1个回答
展开全部
static Image 图 = Image.FromFile(文件路径);
Bitmap 图片 = new Bitmap(图);
Rectangle 图块1 = new Rectangle(0, 0,图片.Width\3, 图片.Height\3);
Rectangle 图块2 = new Rectangle(Width\3, 0,图片.Width\3, 图片.Height\3);
Rectangle 图块3 = new Rectangle(Width\3*2, 0,图片.Width\3, 图片.Height\3);
Rectangle 图块1.1 = new Rectangle(0, Width\3,图片.Width\3, 图片.Height\3);
Rectangle 图块2.1 = new Rectangle(Width\3,Width\3,图片.Width\3, 图片.Height\3);
Rectangle 图块3.1 = new Rectangle(Width\3*2, Width\3,图片.Width\3, 图片.Height\3);
Rectangle 图块1.2 = new Rectangle(0, Width\3*2,图片.Width\3, 图片.Height\3);
Rectangle 图块2.2 = new Rectangle(Width\3,Width\3*2,图片.Width\3, 图片.Height\3);
Rectangle 图块3.2 = new Rectangle(Width\3*2, Width\3*2,图片.Width\3, 图片.Height\3);
//可以直接写在控件或窗体重写方法里面更方便 一下类容写在窗体方法里面
BufferedGraphicsContext 图像缓冲区方法;
BufferedGraphics 图像缓冲区;
图像缓冲区方法 = BufferedGraphicsManager.Current;
图像缓冲区 = 图像缓冲区方法.Allocate(this.CreateGraphics(), this.DisplayRectangle); //Form窗体图像缓冲区
int 绘制位置X,绘制位置Y,绘制大小宽,绘制大小高;//可以直接定义成 Rectangle仍进下面的函数跟方便
图像缓冲区.Graphics.DrawImage(图片, new Rectangle(绘制位置X,绘制位置Y,绘制大小宽,绘制大小高), 图块1, GraphicsUnit.Pixel);
Bitmap 图片 = new Bitmap(图);
Rectangle 图块1 = new Rectangle(0, 0,图片.Width\3, 图片.Height\3);
Rectangle 图块2 = new Rectangle(Width\3, 0,图片.Width\3, 图片.Height\3);
Rectangle 图块3 = new Rectangle(Width\3*2, 0,图片.Width\3, 图片.Height\3);
Rectangle 图块1.1 = new Rectangle(0, Width\3,图片.Width\3, 图片.Height\3);
Rectangle 图块2.1 = new Rectangle(Width\3,Width\3,图片.Width\3, 图片.Height\3);
Rectangle 图块3.1 = new Rectangle(Width\3*2, Width\3,图片.Width\3, 图片.Height\3);
Rectangle 图块1.2 = new Rectangle(0, Width\3*2,图片.Width\3, 图片.Height\3);
Rectangle 图块2.2 = new Rectangle(Width\3,Width\3*2,图片.Width\3, 图片.Height\3);
Rectangle 图块3.2 = new Rectangle(Width\3*2, Width\3*2,图片.Width\3, 图片.Height\3);
//可以直接写在控件或窗体重写方法里面更方便 一下类容写在窗体方法里面
BufferedGraphicsContext 图像缓冲区方法;
BufferedGraphics 图像缓冲区;
图像缓冲区方法 = BufferedGraphicsManager.Current;
图像缓冲区 = 图像缓冲区方法.Allocate(this.CreateGraphics(), this.DisplayRectangle); //Form窗体图像缓冲区
int 绘制位置X,绘制位置Y,绘制大小宽,绘制大小高;//可以直接定义成 Rectangle仍进下面的函数跟方便
图像缓冲区.Graphics.DrawImage(图片, new Rectangle(绘制位置X,绘制位置Y,绘制大小宽,绘制大小高), 图块1, GraphicsUnit.Pixel);
追问
我创建了PictureBox[] pic = new PictureBox[9];
我该怎么去接收结果
for(int i=0;i<9;i++){
pic[i]=?????
}
追答
取得PictureBox控件的绘图区 或者在PictureBox的重绘事件中写 e.Graphics.DrawImage(图片, new Rectangle(绘制位置X,绘制位置Y,绘制大小宽,绘制大小高), 图块1, GraphicsUnit.Pixel);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询