winform中的picturebox控件显示和保存byte[]图片
winform中的picturebox控件显示和保存byte[]图片
完全是靠查百度“文心一言”来弄出来的,先把代码片段记下来,以后说不定什么时候会用到
窗体加载时picturebox控件显示从数据库中取出的byte[]图片
byte[] imageBytes = book?.BookCover; // 使用MemoryStream来读取byte[]中的数据 using (MemoryStream ms = new MemoryStream(imageBytes)) { // 从MemoryStream中加载Image Image image = Image.FromStream(ms); // 将Image对象赋值给PictureBox的Image属性 pictureBox1.Image = image; // (可选)设置PictureBox的SizeMode以适应图片 pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; }
点击按钮选择图片后显示在picturebox控件中:
private void btnOpenImage_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Image Files (*.jpg, *.jpeg, *.png, *.gif) | *.jpg; *.jpeg; *.png; *.gif"; if (openFileDialog.ShowDialog() == DialogResult.OK) { string filePath = openFileDialog.FileName; pictureBox1.Image = Image.FromFile(filePath); pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; // 或者其他你想要的显示模式 } }
保存时从picturebox控件中取出byte[]图片,再存到数据库中
byte[] imageBytes = null; // 检查PictureBox中是否有图片 if (pictureBox1.Image != null) { // 创建一个MemoryStream对象 using (MemoryStream memoryStream = new MemoryStream()) { // 将图片保存到MemoryStream中,这里假设你想要保存为JPEG格式 pictureBox1.Image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); // 将MemoryStream的位置设置为开始位置,以便读取数据 memoryStream.Position = 0; // 读取MemoryStream中的数据到byte数组中 imageBytes = memoryStream.ToArray(); // 现在你可以使用imageBytes数组了,比如保存到文件或发送到服务器等 // ... // 示例:将byte[]数组保存为文件 // File.WriteAllBytes("path_to_save_image.jpg", imageBytes); } } else { // 处理PictureBox中没有图片的情况 MessageBox.Show("PictureBox中没有图片"); }
撸码:复制、粘贴,拿起键盘就是“干”!!!