【发布时间】:2017-05-30 15:50:13
【问题描述】:
我正在尝试捕获屏幕,然后将屏幕截图输出为base64 图像,但似乎无法从我的代码中获取可用的base64 图像。
public static Bitmap bitmap;
public static string base64;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
CaptureScreen();
Graphics graphics = Graphics.FromImage(bitmap as Image);
graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = bitmap;
richTextBox1.Text = base64;
}
public static string CaptureScreen()
{
bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Bitmap bImage = bitmap;
System.IO.MemoryStream ms = new System.IO.MemoryStream();
bImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] byteImage = ms.ToArray();
base64 = Convert.ToBase64String(byteImage);
return base64;
}
【问题讨论】:
-
您要复制 0 宽度和 0 高度...?
-
你的意思是在 graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);这只是为了显示结果应该是什么样子。只为发展
-
但是:你正在分配一个空位图,什么都不写,然后保存它;您应该期望看到一个黑色(或白色)矩形。你看到了什么?对我来说它看起来像一个黑色矩形......
-
当我将 base64 字符串转换回图像时,我得到一个黑色方块。我得到一个完整的工作截图显示在图片框1
-
您期待什么,为什么?为什么你会期望看到任何else?你分配了一个空位图,什么也没写……
标签: c# .net string bitmap base64