CefBrowser 复制图片解决办法
使用的是CefSharp控件,开放出的功能比较多,但是还是有一些封闭的。例如复制图片到Clipbord,库没有提供。
VC虽然看得懂,但托管代码没搞过,看得很蛋痛,而且如果有CefSharp有新版本还要改,于是曲线解决。
先说IE,其有RangeControl,可以复制,但Chrome和Firefox都不支持,当然后二者都可以复制图片。
问题主要原因,是不知道怎样比缓存提取图片。当然可以重新下载,但这样就没意义,如验证码或尺寸大的图片,重新下载不合要求。因为CefSharp就是Chrome,有一个工具可以查看缓存,但没有找到其源码。不清楚缓存格式,无法提存,猜可能是一种小开型数据库,例如Sqlite等,因为看devTools的资源部分,很有数据库管理器的影子。
还有一种办法是截屏,但这不是正路,如图片被遮挡或缩放时。
Javasciprt剪贴板不能用,缓存又没办法查看,这个问题困扰了好久。
最后找到一种办法,用Canvas标签。
相关资料: HTML 5 <canvas> 标签 HTML 5 Canvas HTML 5 Canvas 参考手册 HTML DOM Canvas 对象 The canvas element
最后用javascript 反调 c# 注册的对象,传回buffer数据,但如果图片大一些,耗时会很多,我的300*100的图片要1秒多,只是一种暂时的方法,最好还是可以读缓存。
一些参考资料:
基于 HTML5 中的 Web SQL Database 来构建应用程序
HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage
HTML5开发学习(3):本地存储之Web Sql Database(附源码)
W3C Web SQL Database Web SQL databases 搜索
出现 SECURITY_ERR:DOM Exception 18 异常:
在本地调试时,会出现这个问题,安全性错误,其实是JS跨域访问错误,因为之前是运行的客户端嵌入的JS,将UniversalAccessFromFileUrlsAllowed 设置为true,只能使本机的调试网页可以,但访问外网时,当图片和网站不一致,还会报错,因为本身是嵌入使用浏览器,设置 WebSecurityDisabled=true,解决。
SECURITY_ERR:DOM Exception 相关: 之一、之二
CefBrowser 复制图片解决办法的更多相关文章
- Hexo + VSCode 插入 Markdown 图片解决办法
最近打开 typora 时发现弹窗强更,不让用 beta 版了 想到自己并不是非常需要 WYSIWYG,而且也不是经常使用 typora,于是直接退回到 VSCode 了,而且在 VSCode 里可以 ...
- 用微软官方的 HTML Help Workshop制作的CHM文件不显示图片解决办法
制作CHM文档,方便小巧还易于查看,用处自不必多说了,最近想把这个季度所学习的内容全部制作成CHM格式文档,给自己后续用来温故而知新,同时也可以做为后起之秀避坑法宝.但是在生成CHM文档之后发现有些地 ...
- VMware虚拟机与宿主无法复制的解决办法
由于工作需要,上网机器使用虚拟机,因此需要经常来回的拷贝文件,而vmware从6.5一直走来到10.0.1,总是有一个问题很让人苦恼---共享粘贴板总是会无故失效.经常实验,发现可以经过以下方法临时解 ...
- 主机与虚拟机Oracle VM VirtualBox不能拖动复制的解决办法
先将虚拟机系统关机,然后打开Oracle VM VirtualBox管理器: 第一步: 常规高级里共享粘贴板已经选中双向 第二步: 虚拟机设置-存储-控制器SATA(或IDE)-勾选"使用主 ...
- Kali/Ubuntu无法和物理机之间复制粘贴解决办法
Vmware安装Linux,传统的vmtools已经被抛弃,当前建议使用Open-VM-tools 安装Open-VM-tools//Kali,Ubuntu: sudo apt install Ope ...
- windwos服务器 无法与本地电脑进行复制粘贴解决办法
之前复制粘贴功能可以使用 现在突然间不能使用了 1.打开任务管理器,查看进程,如果有 rdpclip.exe 进程,先关闭该进程2.开始->运行->rdpclip.exe,重新运行此程序 ...
- Wordpress 外网访问时不显示图片解决办法
我的云服务器是 :windows2012R 打开命令行: 进入到mysql中 show databases; //查看你Wordpress使用的数据库是否存在 use blog; //例如你使用的数据 ...
- 360doc的文章不能复制的解决办法
按F12打开控制台,执行: document.body.oncopy=null;
- win10文件名或文件路径过长导致无法删除或复制的解决办法
试过了百度上的所有方法,命令行中del没有作用,Unlocker也没用,批处理也不起作用,360的强力删除也没有作用. 最后找到一种方法,在压缩该文件的时候选择删除源文件. 但是需要注意一点,用360 ...
随机推荐
- java之并发编程:Lock
这是转的:http://www.cnblogs.com/dolphin0520/p/3923167.html * 在多线程编程里面一个重要的概念是锁定,如果一个资源是多个线程共享的,为了保证数据的完整 ...
- Python/dotNET Redis服务连接客户端调用SET方法的同时获取Redis服务器返回的内容
在用Python或dotNET redis客户端连接redis服务器的时候,当你调用客户端的SET方法后同时还想得到其返回的字符串,那么需要处理一下. 1. Redis Python redis客户端 ...
- 配置指定使用tcc编译器编译nim程序
1.前言 nim是什么? nim是一门静态编译型语言,语法类似python,nim的代码被翻译成C代码再被C编译器编译成可执行文件.因此nim的可执行文件比较小,性能应该也不错. 最简单的nim程序就 ...
- fontsize可以解决img标签插入图片之间的缝隙
当我们用img标签连续插入多张图片的时候,图片和图片之间会出现缝隙,通常我们的做法是用DIV将图片包起来进行浮动来解决这个问题,但是还有一种解决方法是在img的父级元素里面设置font-size:0来 ...
- POJ 3683 Priest John's Busiest Day (2-SAT)
题意:有n对新人要在同一天结婚.结婚时间为Ti到Di,这里有时长为Si的一个仪式需要神父出席.神父可以在Ti-(Ti+Si)这段时间出席也可以在(Di-Si)-Si这段时间.问神父能否出席所有仪式,如 ...
- .net core 学习笔记(4)-ViewComponent
动态菜单,以前用的是Html.Action(url)来获取的,到了 .net core 中忽然发现没有了这个方法,原来在 .net core 中是提供了个 ViewComponent,有点类似以前的用 ...
- 2016年Q2《网络安全创新500强》榜单解读
近日,美国投资咨询机构Cybersecurity Ventures发布了2016 Q2<网络安全创新500强>企业榜单,新兴安全公司root9B异军突起,国内4家企业上榜. 关于Cyber ...
- thinkPHP(待更新)
一些函数 1. set_include_path().get_include_path() .PATH_SEPARATOR 设置php加载的路径 2. register_shutdown_func ...
- flyby function
x=linspace(0.001, 3, 300); y=besselj(5,sqrt(1+x.^2));m=exp(5*i*atan(x.^-1));z=y.*m;plot(x,log(z),'r' ...
- Spring面向切面之AOP深入探讨
Spring之AOP深入探讨 刚接触AOP之前我已经找了网上各种博客论坛上的关于AOP的文章利于我理解因为听好多人说AOP很复杂,很深奥当我接触之后发现根本不是那么的难于理解.它只是一个基于OOP技术 ...