位图转化为字节数组:
MemoryStream ms = new MemoryStream();
byte[] content;
Bitmap bmp = GetScreenImage();
bmp.Save(ms, ImageFormat.Bmp);
content = ms.ToArray();
字节数组保存为图片:
FileStream fw = new FileStream(@"c:\screen3.jpg ", FileMode.OpenOrCreate, FileAccess.ReadWrite);
fw.Write(content, 0, content.Length);
fw.Close();
Array保存到ArrayList
ArrayList myarraylist = new ArrayList();
foreach (byte obj in data)
{
myarraylist.Add(obj);
}
拷贝ArrayList到Array:
myarraylist.CopyTo(state.RecByte);
屏幕坐标与控件坐标:
pictureBox1.PointToScreen(new Point(0, 0));//控件左上角到屏幕坐标
pictureBox1.PointToClient(MousePosition);//屏幕上坐标到控件内部
判断鼠标是否在区域内:
区域.Contains(坐标);
窗体移动:
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MOVE = 0xF010;
public const int HTCAPTION = 0x0002;
ReleaseCapture();
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
/// <summary>
/// 获取屏幕图像
/// </summary>
private Bitmap GetScreenImage()
{
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
g.Dispose();
return bmp;
}
System.Windows.Forms.SystemInformation.WorkingArea.Width 屏幕宽度
System.Windows.Forms.SystemInformation.WorkingArea.Height屏幕高度(去系统任务栏,如果你有的话)
this.Size.Width自己窗体的宽度,this.Size.Width自己窗体的高度
this.ClientRectangle.Width 工作区域宽度
this.ClientRectangle.Height工作区域高度