C#怎么让一个程序的界面的图片下保存下来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#怎么让一个程序的界面的图片下保存下来相关的知识,希望对你有一定的参考价值。

在线等,回答满意再加分,急

我现在通过sampleapplication可以启动CyDisplayEx这个程序,我想在sampleapplication这个界面上设置一个button,通过button可以保存CyDisplayEx界面上的图片,请问这个button里该给出什么样的方法啊?

参考技术A  private void pictureBox4_Click(object sender, EventArgs e)

Bitmap bitmap = new Bitmap(this.Width, this.Height);
DrawToBitmap(this, bitmap, new Rectangle(0, 0, this.Width, this.Height));
bool isSave = true;
SaveFileDialog saveImageDialog = new SaveFileDialog();
saveImageDialog.Title = "图片保存";
saveImageDialog.Filter = @"jpeg|*.jpg|bmp|*.bmp|gif|*.gif";
if (saveImageDialog.ShowDialog() == DialogResult.OK)

string fileName = saveImageDialog.FileName.ToString();
if (fileName != "" && fileName != null)

string fileExtName = fileName.Substring(fileName.LastIndexOf(".") + 1).ToString();
System.Drawing.Imaging.ImageFormat imgformat = null;
if (fileExtName != "")

switch (fileExtName)

case "jpg":
imgformat = System.Drawing.Imaging.ImageFormat.Jpeg;
break;
case "bmp":
imgformat = System.Drawing.Imaging.ImageFormat.Bmp;
break;
case "gif":
imgformat = System.Drawing.Imaging.ImageFormat.Gif;
break;
default:
MessageBox.Show("只能存取为: jpg,bmp,gif 格式");
isSave = false;
break;


//默认保存为JPG格式
if (imgformat == null)

imgformat = System.Drawing.Imaging.ImageFormat.Jpeg;

if (isSave)

try

images.Save(fileName, imgformat);
//MessageBox.Show("图片已经成功保存!");

catch

MessageBox.Show("保存失败,你还没有截取过图片或已经清空图片!");





   [DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(HandleRef hWnd, int msg, IntPtr wParam, IntPtr lParam);
[DllImport("gdi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]
public static extern bool BitBlt(HandleRef hDC, int x, int y, int nWidth, int nHeight, HandleRef hSrcDC, int xSrc, int ySrc, int dwRop);
/// <summary>
/// 支持呈现到指定的位图。
/// </summary>
public static Bitmap DrawToBitmap(Control control, Bitmap bitmap, Rectangle targetBounds)

if (bitmap == null)

throw new ArgumentNullException("bitmap");

if (((targetBounds.Width <= 0) || (targetBounds.Height <= 0)) || ((targetBounds.X < 0) || (targetBounds.Y < 0)))

throw new ArgumentException("targetBounds");

Bitmap image = new Bitmap(control.Width, control.Height, bitmap.PixelFormat);
using (Graphics graphics = Graphics.FromImage(image))

IntPtr hdc = graphics.GetHdc();
SendMessage(new HandleRef(control, control.Handle), 0x317, hdc, (IntPtr)30);
using (Graphics graphics2 = Graphics.FromImage(bitmap))

IntPtr handle = graphics2.GetHdc();
BitBlt(new HandleRef(graphics2, handle), 0, 0, control.Width, control.Height, new HandleRef(graphics, hdc), targetBounds.X, targetBounds.Y,
0xcc0020);
graphics2.ReleaseHdcInternal(handle);

graphics.ReleaseHdcInternal(hdc);

return image;
本回答被提问者和网友采纳

VS2012 C#设计程序界面时以下这种按钮怎么添加

这种按钮在一块的怎么添加

将这四个图片保存在本地,分别作为四个按钮的背景图即可 参考技术A ToolStrip控件会有图片和文字选项 参考技术B 自己用自定义控件做一个按钮就可以了.. 参考技术C 这好像是一个控件,可以设置图片和文字的,

以上是关于C#怎么让一个程序的界面的图片下保存下来的主要内容,如果未能解决你的问题,请参考以下文章

微信怎么发朋友圈让图片并排3张?

C# 怎么保存WinForm应用程序的配置?

C# 怎么保存WinForm应用程序的配置?

用vs2010编写C#程序,将图片保存到一个文件夹中,下次循环覆盖保存,提示gdi+中发生一般性错误。。。

怎么把微信小程序图片保存下来?

抖音里的图片怎么下载 怎么一张张保存下来