浏览器扩展, - 在渲染之前访问图像

时间:2011-06-02 04:25:15

标签: c# image browser rendering

我是一名具有良好IT背景的摄影师。

我正在寻找拦截网站中图像的渲染,可能是通过浏览器扩展。我的计划是在浏览网页时自动识别我的照片。

所以我需要做什么 - 你告诉我最好的方式请:) - 截取图像的渲染,读取图像并可能修改它。

扩展/ addOns是一个好方法吗?还有另外一种方法吗?可能使用c#...

干杯 马克

2 个答案:

答案 0 :(得分:0)

这称为数字版权管理(DRM)。你和Hollyweird都希望阻止所有人免费观看。但是一旦它出现在网络上,只有排序可以阻止人们观看。

这是开始研究的好地方。 http://en.wikipedia.org/wiki/Digital_rights_management

答案 1 :(得分:0)

例如,如果您的照片托管在ImageShack.us上,则无法拦截渲染。恕我直言,你可以得到的最接近的是使用水印。

但是,如果您在服务器上托管图像并使用C#中的ashx渲染它们,那么您可以在渲染之前读取图像并进行修改。

以此代码为例: http://www.developerfusion.com/code/5223/using-ashx-files-to-retrieve-db-images/

<%@ webhandler language="C#" class="NWEmpPhotoHandler" %>
using System; 
using System.Web; 
using System.Data; 
using System.Data.SqlClient; 
public class NWEmpPhotoHandler : IHttpHandler 
{ 
    public bool IsReusable { get { return true; } } 

    public void ProcessRequest(HttpContext ctx) 
    { 
        string id = ctx.Request.QueryString["id"]; 

        SqlConnection con = new SqlConnection(<<INSERT CONNECTION STRING HERE>>); 
        SqlCommand cmd = new SqlCommand("SELECT Photo FROM Employees WHERE EmployeeID = @EmpID", con); 
        cmd.CommandType = CommandType.Text; 
        cmd.Parameters.Add("@EmpID", id); 

        con.Open(); 
        byte[] pict = (byte[])cmd.ExecuteScalar(); 
        con.Close(); 

        ctx.Response.ContentType = "image/bmp"; 
        ctx.Response.OutputStream.Write(pict, 78, pict.Length - 78); 
    } 
} 

所以你可以用以下网址点击ashx:www.Marc.com/Images.ashx?id = 123

或者使用浏览器扩展方法,您可以拥有本地图像存储库或特定图像名称(使用GUID),并在加载页面时检测是否有任何图像是您的,然后进行黑魔法。