2012-07-25 84 views
0

我一直在环顾四周,阅读关于处理程序,但我不完全了解如何实施他们为我的情况。如何将图像处理程序与图像控件绑定?

我想显示用户的剪贴板截图。我已经有了将剪贴板中的图像检索为位图格式的代码。这是我有:

var dataobj = new DataObject(); 
dataobj = (DataObject)Clipboard.GetDataObject(); 

System.Drawing.Image img = dataobj.GetData(DataFormats.Bitmap) as System.Drawing.Image; 
original = (System.Drawing.Image)img.Clone(); 

img = resizeImage(img, new Size(670, 500)); 
String s = "c:/Temp/temp.png"; 
img.Save(s, ImageFormat.Png); 
Image1.ImageUrl = s; 
Image1.DataBind(); 

我的问题是,我无法将图像保存到硬盘上。

我的第一个问题是,在这种情况下图像处理程序会帮助我吗?

如果会,我怎么修改代码,并将其与此代码扎入我的图像处理程序:

public class getmyimage : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
    HttpResponse r = context.Response; 
    r.ContentType = "image/png"; 
    // Write the requested image 
    r.WriteFile("temp.png"); 
    } 

    public bool IsReusable 
    { 
    get { return false; } 
    } 
} 
+0

如果这是ASP.NET,你是如何捕捉用户剪贴板中的服务器上? – freefaller 2012-07-25 15:54:28

+0

创建一个新的STA线程捕获服务器上用户的剪贴板。我想我没有在非本地测试它,但剪贴板在我实现这个之前总是返回null。 – tareqx3 2012-07-25 15:57:27

回答

1

你好处理HTTP允许客户重定向或重写请求,出于安全考虑要求的格式标题,或在某些论坛中显示横幅。但对于你的例子,我认为你不需要http处理器

0

在web.config文件中配置处理程序,并将URL分配给ImageURL属性或使用带有“ashx”扩展名的通用处理程序文件,如果您使用ASHX,您不需要在web.config文件中进行配置。将ASHX文件路径分配给ImageURL属性。如果您想渲染动态图像,请确保清除缓存或在子数据库调用中使用不同的URL,否则您将获得缓存图像。 这里是博客条目。

http://www.developerfusion.com/code/5223/using-ashx-files-to-retrieve-db-images/

http://www.eggheadcafe.com/community/asp-net/17/10093602/how-to-populate-image-form-sql-to-image-control.aspx