C# picturebox画直线 想把画出来的东西保存成图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# picturebox画直线 想把画出来的东西保存成图片相关的知识,希望对你有一定的参考价值。

C# picturebox画直线 想把画出来的东西保存成图片
用openFileDialog
请高手解决
或者 在picturebox里画图后,怎样把图形赋值给picturebox.Image

Bitmap bitmap = new Bitmap(图片对象);---创建一个BMP对象,用来编辑图片
//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//清空画布并以透明背景色填充
g.Clear(System.Drawing.Color.White);
等等

//将画好的图片保存到指定路径
bitmap1.Save(路径, System.Drawing.Imaging.ImageFormat.Jpeg);

再就解释不了了,希望对你有帮助
参考技术A private void button1_Click(object sender, EventArgs e)

OpenFileDialog myopen = new OpenFileDialog();
myopen.ShowDialog();
if (myopen.FileName == "")

MessageBox.Show("保存取消!");

else

//路径文件名:myopen.FileName
MessageBox.Show(myopen.FileName); //测试
//以下代码保存图像文件

参考技术B Bitmap myPic=this.PictureBox1.Image;
myPic.Save("C:\abc.bmp")

C# Winform picturebox显示用代码画出来的字符串图片

镇场诗:
———大梦谁觉,水月中建博客。百千磨难,才知世事无常。
———今持佛语,技术无量愿学。愿尽所学,铸一良心博客。
——————————————————————————————————————————

1 UI

技术分享

 

 

2 code

 

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 
 11 namespace WindowsFormsApplication6
 12 {
 13     
 14     public partial class Form1 : Form
 15     {
 16 
 17         public Form1()
 18         {
 19             InitializeComponent();
 20         }
 21         /// <summary>
 22         /// 用来画出图片,然后在picturebox中显示图片的
 23         /// </summary>
 24         /// <param name="pBox">哪个picturebox显示画出来的图片呀</param>
 25         /// <param name="content">将哪个字符串画进图片呢</param>
 26         private void pbShow(PictureBox pBox,string content)
 27         {
 28             //创建图片对象,一会要给picturebox的
 29             //这个图片,宽32,高31,刚好是picturebox的宽与高
 30             Bitmap bm = new Bitmap(32, 31);
 31             //从指定的Image对象创建新的Grapics画板  
 32             Graphics g = Graphics.FromImage(bm);
 33             //字体是宋体
 34             string font = "宋体";
 35             //字体的颜色是白色
 36             Color fontColor = Color.White;
 37             //创建一个点,这个点就是用来指定被画对象的初始位置
 38             Point p = new Point(10, 5);
 39             //画字符串 画的内容是content   宋体,12号,粗体               字体的颜色:白色     字体的位置
 40             g.DrawString(content, new Font(font, 12, FontStyle.Bold), new SolidBrush(fontColor), p);
 41             
 42             //把画出来的图片交给picturebox吧
 43             pBox.Image = bm;
 44         }
 45 
 46         //定义一个枚举后,配合bool数组,程序的可读性就会大大提高
 47         enum flag:Int16
 48         {
 49             OF,
 50             DF,
 51             IF,
 52             SF,
 53             ZF,
 54             AF,
 55             PF,
 56             CF
 57         }
 58 
 59         //flag寄存器的每一位的状态,true对应1,false对应0
 60         bool[] eachFlag = new bool[] { true, true, true, true, true, true, true, true };
 61 
 62         private void Form1_Load(object sender, EventArgs e)
 63         {
 64             
 65         }
 66 
 67         #region 16个按钮被点击后的代码
 68         /// <summary>
 69         /// 按钮被单击,pbOF这个picturebox显示OV字样,然后OF标志位对应在bool数组的内容变为ture
 70         /// </summary>
 71         /// <param name="sender"></param>
 72         /// <param name="e"></param>
 73         private void btnOV_Click(object sender, EventArgs e)
 74         {
 75             pbShow(pbOF,"OV");
 76             eachFlag[(int)flag.OF] = true;
 77         }
 78 
 79         private void btnNV_Click(object sender, EventArgs e)
 80         {
 81             pbShow(pbOF, "NV");
 82             eachFlag[(int)flag.OF] = false;
 83         }
 84 
 85         private void btnDN_Click(object sender, EventArgs e)
 86         {
 87             pbShow(pbDF,"DN");
 88             eachFlag[(int)flag.DF] = true;
 89         }
 90 
 91         private void btnUP_Click(object sender, EventArgs e)
 92         {
 93             pbShow(pbDF, "UP");
 94             eachFlag[(int)flag.DF] = false;
 95         }
 96 
 97         private void btnEI_Click(object sender, EventArgs e)
 98         {
 99             pbShow(pbIF, "EI");
100             eachFlag[(int)flag.IF] = true;
101         }
102 
103         private void btnDI_Click(object sender, EventArgs e)
104         {
105             pbShow(pbIF, "DI");
106             eachFlag[(int)flag.IF] = false;
107         }
108 
109         private void btnNG_Click(object sender, EventArgs e)
110         {
111             pbShow(pbSF, "NG");
112             eachFlag[(int)flag.SF] = true;
113         }
114 
115         private void btnPL_Click(object sender, EventArgs e)
116         {
117             pbShow(pbSF, "PL");
118             eachFlag[(int)flag.SF] = false;
119         }
120 
121         private void btnZR_Click(object sender, EventArgs e)
122         {
123             pbShow(pbZF, "ZR");
124             eachFlag[(int)flag.ZF] = true;
125         }
126 
127         private void btnNZ_Click(object sender, EventArgs e)
128         {
129             pbShow(pbZF, "NZ");
130             eachFlag[(int)flag.ZF] = false;
131         }
132 
133         private void btnAC_Click(object sender, EventArgs e)
134         {
135             pbShow(pbAF, "AC");
136             eachFlag[(int)flag.AF] = true;
137         }
138 
139         private void btnNA_Click(object sender, EventArgs e)
140         {
141             pbShow(pbAF, "NA");
142             eachFlag[(int)flag.AF] = false;
143         }
144 
145         private void btnPE_Click(object sender, EventArgs e)
146         {
147             pbShow(pbPF, "PE");
148             eachFlag[(int)flag.PF] = true;
149         }
150 
151         private void btnPO_Click(object sender, EventArgs e)
152         {
153             pbShow(pbPF, "PO");
154             eachFlag[(int)flag.PF] = false;
155         }
156 
157         private void btnCY_Click(object sender, EventArgs e)
158         {
159             pbShow(pbCF, "CY");
160             eachFlag[(int)flag.CF] = true;
161         }
162 
163         private void btnNC_Click(object sender, EventArgs e)
164         {
165             pbShow(pbCF, "NC");
166             eachFlag[(int)flag.CF] = false;
167         }
168         #endregion
169 
170         /// <summary>
171         /// 显式最终结果,字母对应01的转换
172         /// </summary>
173         /// <param name="sender"></param>
174         /// <param name="e"></param>
175         private void button1_Click(object sender, EventArgs e)
176         {
177             //用一个数组的话,就很好遍历了。
178             PictureBox[] pb = new PictureBox[] { pbOF, pbDF, pbIF, pbSF, pbZF, pbAF, pbPF, pbCF };
179             //因为要对字符串反复的增添,修改,覆盖。所以我选择了stringbuilder
180             StringBuilder sb = new StringBuilder();
181             foreach (var item in eachFlag)
182             {
183                 if(item)
184                 {
185                     sb.Append("1");
186                 }
187                 else
188                 {
189                     sb.Append("0");
190                 }
191             }
192             textBox1.Text = sb.ToString();
193         }
194 
195     }
196 }

 

 

3 show

技术分享

 

 

 

——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。
C#是优秀的语言,值得努力学习。
如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取铸成一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。








以上是关于C# picturebox画直线 想把画出来的东西保存成图片的主要内容,如果未能解决你的问题,请参考以下文章

C# Winform picturebox显示用代码画出来的字符串图片

c# PictureBox 的图像上使用鼠标画矩形框

C# WinForm画直线,怎么画?

c# pictruebox怎么清除指定画的DrawImage

请问c# 中如何实现在PictureBox中通过鼠标拖拽画出矩形框呢?picturebox中的MouseDown和MouseMove如何使用

loss曲线画出来是直线