Graphics问题DrawRectangle DrawString画出来的不是我想要的啊,帮看看啊。。。

时间:2022-04-28 21:25:13

            Image image = Image.FromFile(txtBackImgPath.Text);//加载选择的图片
            Graphics g = Graphics.FromImage(image);//用graphics在选择的图片上画内容
            Font drawFont = new Font("宋体", 16);//graphics使用的字体和字号
            int width = Screen.PrimaryScreen.Bounds.Width;//屏幕的宽
            int height = Screen.PrimaryScreen.Bounds.Height;//屏幕的高
            Point location= new Point(width-400,50);//矩形的左上角
            Size size = new Size(300, 300);//矩形的大小 
            Rectangle ret = new Rectangle(location, size);//生成矩形
            SolidBrush drawBrush = new SolidBrush(Color.Red);//graphics使用的画刷
            g.DrawRectangle(new Pen(drawBrush), ret);//把矩形画出来
            g.DrawString(txtTips.Text, drawFont, drawBrush, ret);//画用户输入的文字
            Bitmap img = new Bitmap(image, width, height);//将图片设置为屏幕的大小的位图
            img.Save("temp.bmp");//保存图片
            SystemParametersInfo(20, 0, System.Windows.Forms.Application.StartupPath+"\\temp.bmp", 0x2);//将位图设置为壁纸


为什么画出来的矩形就是不对啊,大小和位置都不对,我想在图片的右上角画一个300*300的矩形,然后在矩形内填充文字

3 个解决方案

#1


你应该获取image的宽和高啊
跟屏幕的大小有啥关系?

#2


引用 1 楼 Z65443344 的回复:
你应该获取image的宽和高啊
跟屏幕的大小有啥关系?

把图片拉伸,设置壁纸和屏幕一样大

#3


Bitmap img = new Bitmap(image, width, height);
这是将图片拉伸到屏幕大小

你先画,再拉伸,尺寸当然就不对啦
要先拉伸,后绘图
或用 ScaleTransform 改变缩放比例

#1


你应该获取image的宽和高啊
跟屏幕的大小有啥关系?

#2


引用 1 楼 Z65443344 的回复:
你应该获取image的宽和高啊
跟屏幕的大小有啥关系?

把图片拉伸,设置壁纸和屏幕一样大

#3


Bitmap img = new Bitmap(image, width, height);
这是将图片拉伸到屏幕大小

你先画,再拉伸,尺寸当然就不对啦
要先拉伸,后绘图
或用 ScaleTransform 改变缩放比例