我是一名具有良好IT背景的摄影师。
我正在寻找拦截网站中图像的渲染,可能是通过浏览器扩展。我的计划是在浏览网页时自动识别我的照片。
所以我需要做什么 - 你告诉我最好的方式请:) - 截取图像的渲染,读取图像并可能修改它。
扩展/ addOns是一个好方法吗?还有另外一种方法吗?可能使用c#...
干杯 马克
答案 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),并在加载页面时检测是否有任何图像是您的,然后进行黑魔法。