请教各位大人:[跪求 + 哭求 大家帮忙看看]困扰3天2夜的问题 asp.net[不是Form] 后台截取屏幕的问题 ... 在线等待各位大人

zhgu999 zhgu999 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请教各位大人:困扰3天2夜的问题 asp.net[不要Form代码] 后台截取屏幕的问题 ... 在线等待各位大人

要实现的功能是 :用户上传形象照片到服务器后,这时用户在操作服务器的照片。拖动照片[比如上身部分]到指定像框里[div]
这时用户点提交后,后台自动截取 像框里的照片。
说白了就是给用户提供各web 截取屏幕的的功能....

遇到的问题是这样的 : 很多现成代码都是Form的程序,我改成asp.net 在本地好用localhost 可以截取照片
但配置上IIS 后截取后的效果是一片黑. 忘指教
代码如下


using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

//引用API
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern bool BitBlt(
IntPtr hdcDest, //目标设备的句柄
int nXDest, // 目标对象的左上角的X坐标
int nYDest, // 目标对象的左上角的X坐标
int nWidth, // 目标对象的矩形的宽度
int nHeight, // 目标对象的矩形的长度
IntPtr hdcSrc, // 源设备的句柄
int nXSrc, // 源对象的左上角的X坐标
int nYSrc, // 源对象的左上角的X坐标
System.Int32 dwRop // 光栅的操作值
);


[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern IntPtr CreateDC(
string lpszDriver, // 驱动名称
string lpszDevice, // 设备名称
string lpszOutput, // 无用,可以设定位"NULL"
IntPtr lpInitData // 任意的打印机数据
);

protected void Button1_Click(object sender, EventArgs e)
{
IntPtr dc1 = CreateDC("DISPLAY", null, null, (IntPtr)null);
//创建显示器的DC
Graphics g1 = Graphics.FromHdc(dc1);
//由一个指定设备的句柄创建一个新的Graphics对象
Bitmap MyImage = null;
MyImage = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, g1);
//根据屏幕大小创建一个与之相同大小的Bitmap对象
Graphics g2 = Graphics.FromImage(MyImage);
//获得屏幕的句柄
IntPtr dc3 = g1.GetHdc();
//获得位图的句柄
IntPtr dc2 = g2.GetHdc();
//把当前屏幕捕获到位图对象中
BitBlt(dc2, 0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, dc3, 0, 0, 13369376);

//把当前屏幕拷贝到位图中
g1.ReleaseHdc(dc3);
//释放屏幕句柄
g2.ReleaseHdc(dc2);
//释放位图句柄
MyImage.Save("d:\\MyJpeg.jpeg", ImageFormat.Jpeg); //这里图片是一片黑
//MyImage.Save(Response.OutputStream, ImageFormat.Jpeg);

}




//如果截取屏幕不好用的话 ,我又用了重新生成服务器的图片 功能
//就是把原来大的图片 用户调整好后,用户按提交.我把图片按点像素生成个小的用户指定部位的图片。用户的指定图片坐标点我可以取出来,
//问题是重新生成的图片是从 坐标 0,0 位置开始的.图片大小可以控制.
// 问题是我想从中间坐标开始 生成呢 ? 怎么控制坐标呢 ..?

代码如下
Bitmap bt = new Bitmap(@"d:\photo1\200000120080313171719.jpg");

int width = 150; 这里控制图片大小.. 可是我从哪里控制图片从哪个坐标点开始生成呢.?? 2个坐标点 x轴和y轴
int height = 240;

Bitmap bt1 = new Bitmap(width, height);

//这里像素点 生成.
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
bt1.SetPixel(x, y, bt.GetPixel(x,y));
}
}

bt1.Save(Response.OutputStream,ImageFormat.Jpeg); //输出到页面呈现出来图片
bt1.Save(@"d:\9.jpg"); //保存到d盘
...全文

相关推荐

asp.net+easyui的后台管理系统

easyui这个框架真心不错,收集来的,拿去参考吧。憋问我'疯狂秀才'管理员密码是什么,加密这点小问题,都提供了源代码了,花时间想想怎么登陆吧(需要提供更多easyui的列子,请戳我..哦不,请百度)

十进制Hikari

Flash摄像头拍照上传全解析:从AS3到ASP.NET/PHP/Java对接与迁移

在维护企业OA、ERP等老系统时,常会遇到基于Flash的摄像头拍照上传模块。这类方案以ActionScript 3调用本地摄像头,通过JPGEncoder将视频帧编码为JPEG,再经HTTP POST上传至任意后端,实现了前端采集与后端存储的解耦。其核心设计——接口约定前置、语言无关接收,至今仍具参考价值。本文从老系统改造场景切入,详细拆解AS3核心代码、三种后端语言(ASP.NET、PHP、Java)的对接实现与易错点,并总结摄像头权限、跨域、字段名不一致等常见问题。同时提出平滑迁移策略:复用旧接口、置

weixin_34121304

基于asp.net的在线答疑系统源代码

此系统采用的是asp.net+sql开发的在线答疑系统,包括了留言和在线交流平台

coco111110

ASP.NET从客户端中检测到有潜在危险的request.form值的3种解决方法

当页面编辑或运行提交时,出现“从客户端中检测到有潜在危险的request.form值”问题,该怎么办呢?如下图所示: 下面博主汇总出现这种错误的几种解决方法: 问题原因:由于在asp.net中,Request提交时出现有html代码或javascript等字符串时,程序系统会认为其具有潜在危险的值。环境配置会报出“从客户端 中检测到有潜在危险的Request.Form值”这样的Error。 1、当前提交页面,添加代码 打开当前.aspx页面,页头加上代码:validateRequest=”false”,如: 代码如下: &lt;&#37;@ Page Language=”C#” ValidateRequ

weixin_38725119

ASP.NET后台实现图片上传

用ASP.NET后台实现图片上传到文件,而在数据库中保存图片的路径

a532733081a
评论 7
收藏 已收藏
分享
返回顶部
zhgu999
.NET社区 62,272 成员 668,968 内容