如题,想要显示一些图片在网页上,但是不能让用户去保存,当然 这并不绝对,用户可以截图不用发屏蔽邮件菜单的代码了,如果有swf插件相关的可以赐教下 听说用flash做显示 用户就不能保存图片了

解决方案 »

  1.   

    屏蔽右键或者用flash显示,不过是增加普通用户保存图片的难度。
      

  2.   

    flash的确可以防止保存图片,但别人可以想法下载你的flash,而且你不能走http(https例外),因为有各种抓包工具,而且现在的手机相机分辨率都那么高了,拍你张图片再剪辑下也不是难事。我觉得你还不如加强权限管理和打个水印比较实在
      

  3.   

    不谈(其实很简单的)通用桌面窗口截图方式,我们看看使用 webbrowser 如何将网页截图存档/// <summary>
    /// 下载网页,产生图片
    /// </summary>
    /// <param name="uri">要下载的网页地址。</param>
    /// <param name="width">初始窗口宽度,用来强制网页初始排版。</param>
    /// <param name="millisecondsTimeout">网页下载完毕,等待网页异步渲染的时间。</param>
    /// <param name="callback">回调,返回产生的位图对象。</param>
    public static void 网页生成图片(this Uri uri, int width, int millisecondsTimeout, Action<Bitmap> callback)
    {
        var brw = new WebBrowser { Width = width, ScrollBarsEnabled = false, ScriptErrorsSuppressed = false };
        brw.DocumentCompleted += (s, e) =>
        {
            if (brw.ReadyState == WebBrowserReadyState.Complete)
            {
                ThreadPool.QueueUserWorkItem(h =>
                {
                    Thread.Sleep(millisecondsTimeout);
                    brw.BeginInvoke((Action)delegate
                    {
                        Rectangle r = brw.Document.Body.ScrollRectangle;
                        brw.Height = r.Height;
                        brw.Width = r.Width;
                        var bitMapPic = new Bitmap(r.Width, r.Height);
                        brw.DrawToBitmap(bitMapPic, r);
                        brw.Dispose();
                        callback(bitMapPic);
                    });
                });
            }
        };
        brw.Navigate(uri);
    }假设我要截取 http://v.6.cn/824151 的图片,它几乎所有数据和flash 视频都是异步加载的,那么我延迟5秒钟再来截图,那么我可以写 网页生成图片(new Uri("http://v.6.cn/824151"), 1200, 5000, (img)=>
    {
         保存 img 到本地;
    });实际上只要客户端可以显示出来,人家随便查找网页上的 div 等等 element,随便自动截图,而且还能自动录像。
      

  4.   

    相关的.net 组件返回查找到的 HtmlElement,本身都可以直接转为位图。也就是说,其实使用 c# 代码找到一个 DIV 然后就能“1、2条语句”就转为图片。
      

  5.   

    那简单
    不用img就行了,随便弄个div之类的,用css设置background即可。右键里面就没有保存图片了。
    或者2层元素,在下层放图片,上层放链接,这样用户右键也只能点到上层的元素。