基于C#实现的屏幕指定区域截屏代码
以前在别的地方见过一个通过调用系统API实现屏幕截图的例子,从内心来说我不太喜欢在C#代码中出现这种情况,现在什么都讲“和谐”,我觉得这种做法就是破坏了我们的“和谐”代码,呵呵,开玩笑,有的时候,不通过系统API确实难以做到的。
下面讲述的就是怎么通过纯C#来实现屏幕截图,代码如下:
代码如下:
//截取全屏图象
private void btnFullScreen_Click(object sender, EventArgs e)
{
//创建图象,保存将来截取的图象
Bitmap image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics imgGraphics = Graphics.FromImage(image);
//设置截屏区域 柯乐义
imgGraphics.CopyFromScreen(0, 0, 0, 0, new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height));
//保存
SaveImage(image);
}
//保存图象文件
private void SaveImage(Image image)
{
if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
{
string fileName = saveFileDialog.FileName;
string extension = Path.GetExtension(fileName);
if (extension == ".jpg")
{
image.Save(fileName, ImageFormat.Jpeg);
}
else
{
image.Save(fileName, ImageFormat.Bmp);
}
}
}
这段代码其实很简单,可以设置截屏区域的位置和大小,只不过只能在.net 2.0环境中才能运行。本人正在进一步完善实现拖动拖动截屏技术,类似于QQ中的截屏办法,正在攻关中,如果完成就向大家公布源代码。
相关推荐
-
C#简单获取屏幕鼠标坐标点颜色方法介绍
api函数: 复制代码 代码如下: 1.[DllImport("user32.dll")]//取设备场景 2.private static extern IntPtr GetDC(IntPtr hwnd);//返回设备场景句柄 3.[DllImport("gdi32.dll")]//取指定点颜色 4.private static extern int GetPixel(IntPtr hdc, Point p); 主要方法: 复制代码 代码如下: Timer tim
-
c#制作屏幕保护程序步骤(字幕屏保)
屏幕保护程序的扩展名虽然是"scr",但其实是一个可执行的"exe"文件.但他又是一个比较独特的"exe"文件.下面就来探讨一下,用C#是如何编写屏幕保护的整个过程. 二.C#编写字幕显示屏保程序的关键步骤以及解决方法:(1)设定程序的窗体符合屏幕保护的要求:由于屏幕保护程序就是一个可执行程序,所以在编写屏幕保护程序的时候,首先按照可执行程序来设计.但屏幕保护有自身的特点.譬如:屏幕保护都是充满整个屏幕的,并且没有无边.屏幕保护运行的时候,不能显
-
c#实现winform屏幕截图并保存的示例
复制代码 代码如下: using System.Runtime.InteropServices;using System.Drawing.Imaging; [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")] private static extern bool BitBlt( IntPtr hdcDest, // 目标 DC的句柄 int n
-
C#抓取当前屏幕并保存为图片的方法
本文实例讲述了C#抓取当前屏幕并保存为图片的方法.分享给大家供大家参考.具体分析如下: 这是一个C#实现的屏幕抓取程序,可以抓取整个屏幕保存为指定格式的图片,并且保存当前控制台缓存到文本 using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; u
-
C#实现简单屏幕监控的方法
本文实例讲述了C#实现简单屏幕监控的方法.分享给大家供大家参考.具体如下: 这是一段C#编写的屏幕监控代码,可以自动对屏幕进行截图,软件自身隐藏 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.
-
C#使用timer定时在屏幕上输出信息的方法
本文实例讲述了C#使用timer定时在屏幕上输出信息的方法.分享给大家供大家参考.具体分析如下: 这段c#代码通过timer定时器每隔5秒钟调用一次OnTimerElapsed事件,在屏幕上输出信息,这是一个简单的timer定时器使用范例,可以大概了解一些C#中timer的用法 using System; using System.Timers; public class Program { private static System.Timers.Timer testTimer; public
-
解决C#全屏幕截图的实现方法
今天一位同事想写一个全屏幕截图的代码.当然要实现的第一步是能够获取整个屏幕的位图,记得Win32 API的CreateDC, BitBlt等函数可以使用.于是上网查了下,果然屏幕截图用这些函数.但winform已经可以把API都忘记了,所以得寻找一个无Win32 API的实现方式.综合了网上的实现,以及自己的一些设计,实现思路如下:1. 开始截图时,创建一个与屏幕大小一样的位图,然后用Graphics.CopyFromScreen()把屏幕位图拷贝到该位图上.这是很关键的一步,这样所有的操作就都
-
c#获取光标在屏幕中位置的简单实例
需要调用win32api,winform.wpf通用 代码如下: 复制代码 代码如下: [DllImport("user32.dll")]public static extern bool GetCursorPos(out POINT lpPoint); [StructLayout(LayoutKind.Sequential)]public struct POINT{ public int X; public int Y; public POINT(int x, in
-
C#实现屏幕拷贝的方法
本文实例讲述了C#实现屏幕拷贝的方法.分享给大家供大家参考.具体如下: 方法一: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; namespace Wi
-
基于C#实现的屏幕指定区域截屏代码
以前在别的地方见过一个通过调用系统API实现屏幕截图的例子,从内心来说我不太喜欢在C#代码中出现这种情况,现在什么都讲"和谐",我觉得这种做法就是破坏了我们的"和谐"代码,呵呵,开玩笑,有的时候,不通过系统API确实难以做到的. 下面讲述的就是怎么通过纯C#来实现屏幕截图,代码如下: 复制代码 代码如下: //截取全屏图象 private void btnFullScreen_Click(object sender, EventArgs e)
-
java编程实现屏幕截图(截屏)代码总结
本文实例总结了常见的java编程实现屏幕截图方法.分享给大家供大家参考,具体如下: 方法一: import java.awt.Desktop; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import javax.image
-
Android实现矩形区域截屏的方法
对屏幕进行截屏并裁剪有两种方式:早截图和晚截图.早截图,就是先截取全屏,再让用户对截取到的图片进行修改:与之相对的,晚截图,就是先让用户在屏幕上划好区域,再进行截图和裁剪.其实两者并没有什么太大的区别,这篇就说说怎么实现晚截图. 晚截图可以分成三步: 1. 在屏幕上标出截图的矩形区域 2. 调用系统接口截屏 3. 对截图进行裁剪 效果图如下: 第一步.在屏幕上标识出截图区域 首先确定标识截图区域所需要的功能: 1. 手指拖动形成矩形区域: 2. 可以拖动已经划好的矩形区域进行移动: 3. 可以拖
-
当前页禁止复制粘贴截屏代码小集
复制代码 代码如下: <style>@media print{body{display:none}}</style> <%--禁止截屏,通过清除剪切板实现 Start--%> <script type="text/javascript"> function clearShearPlate() { try { if (clipboardData.getData("Text") || clipboardData.getDa
-
JS实现指定区域的全屏显示功能示例
本文实例讲述了JS实现指定区域的全屏显示功能.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>www.jb51.net js指定区域全屏</title> <style> #fulldiv { background: #fff; w
-
python 实现的截屏工具
项目地址 https://github.com/fandesfyf/Jamscreenshot 功能概述 新增了透视裁剪工具(类似于PS里的用法).多边形截图工具.取色器工具.油漆桶工具.背景还原画笔(配合背景橡皮擦使用).支持回退10步操作历史记录.新增一键还原按钮.新增智能选框的开关.画笔等增加透明度支持,在画笔/标记时可以通过按住ctrl键+滚轮快速调整画笔透明度,新增常用颜色到取色按钮(鼠标划过即可显示).固定截屏在屏幕上时可以通过按住ctrl+滚轮快速调节截屏的透明度 效果图 加了一个
-
android中Webview实现截屏三种方式小结
本人最近学习了android中Webview实现截屏三种方式,下面我来记录一下,有需要了解的朋友可参考.希望此文章对各位有所帮助. 第一种方式 通过调用webview.capturePicture(),得到一个picture对象,根据图像的宽和高创建一个Bitmap,再创建一个canvas,绑定bitmap,最后用picture去绘制. //获取Picture对象 Picture picture = wv_capture.capturePicture(); //得到图片的宽和高(没有reflec
-
Android截屏分享功能
最近项目需要实现Android截屏分享功能,包括Android截屏获取图片.将图片保存到本地.通知系统相册更新.通过微信.QQ.微博分享截屏图片,本篇文章作为总结回顾. 一.Android截屏获取图片 通过对view进行绘制,得到bitmap,可以对Activity.Fragment进行绘制,也可以对其他的View进行绘制. 1 Activity截图(带空白的状态栏) public Bitmap shotScreen(Activity activity) { View view =
-
Android截屏方案实现原理解析
Android截屏的原理:获取具体需要截屏的区域的Bitmap,然后绘制在画布上,保存为图片后进行分享或者其它用途 在截屏功能中,有时需要截取全屏的内容,有时需要截取超过一屏的内容(比如:Listview,Scrollview,RecyclerView).下面介绍各种场景获取Bitmap的方法 普通截屏的实现 获取当前Window的DrawingCache的方式,即decorView的DrawingCache /** * shot the current screen ,with the sta
-
android视频截屏&手机录屏实现代码
本文介绍了android视频截屏&手机录屏实现代码,分享给大家,希望对大家有帮助 问题 在android中有时候我们需要对屏幕进行截屏操作,单一的截屏操作好解决可以通过activity的顶层view DecorView获取一个bitmap,得到就是当前activity上面的全部视图. View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(
随机推荐
- python之sqlalchemy创建表的实例详解
- JS实现简单的二维矩阵乘积运算
- 手机图片预览插件photoswipe.js使用总结
- ASP.NET数组删除重复值实现代码
- ThinkPHP有变量的where条件分页实例
- MySQL对limit查询语句的优化方法
- php heredoc和phpwind的模板技术使用方法小结
- sencha touch 模仿tabpanel导航栏TabBar的实例代码
- jQuery调用ajax请求的常见方法汇总
- Hibernate延迟加载原理与实现方法
- Mongodb 忘记密码的解决办法
- Apache的fork模式和worker模式判断方法
- C#中WebClient实现文件下载
- JS实现运动缓冲效果的封装函数示例
- python 实现读取一个excel多个sheet表并合并的方法
- PHP使用OB缓存实现静态化功能示例
- window环境下使用VScode连接虚拟机MySQL方法
- 对python 命令的-u参数详解
- python数值基础知识浅析
- JAVA开发常用类库UUID、Optional、ThreadLocal、TimerTask、Base64使用方法与实例详解