创建缩略图查看器
使用Dynamic Web TWAIN,您可以在同一页面上放置2个控件来模拟缩略图+主要查看器。
如何在一个页面中定义两个控件
在HtmlPage.html中
缩略图 TITLE>
HEAD>
<! - 放置两个DIV来保持DWT控件 - >
div>
div>
<! - 放置两个DIV来保持DWT控件 - >
script>
script>var DWObject,DWObjectLargeViewer;
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady',Dynamsoft_OnReady);
function Dynamsoft_OnReady(){
/ *创建缩略图* /
DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
/ *创建一个大型观众* /
DWObjectLargeViewer = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainerLargeViewer');
}
在dynamsoft.webtwain.config.js中
Dynamsoft.WebTwainEnv.Containers = [{ContainerId:'dwtcontrolContainer', Width: 120, Height: 350}, {ContainerId:'dwtcontrolContainerLargeViewer', Width: 270, Height: 350},];
【创建缩略图查看器】以下是它的样子:
注意:左侧的控件具有1 * 5的视图模式,右侧的控件具有1 * 1的视图模式,并且设置为一次仅保持1个图像。
DWObject.SetViewMode(1,5);
/ *这实际上是默认设置* /
DWObjectLargeViewer.SetViewMode(1,1);
/ *将其设置为仅保留一个图像* /
DWObjectLargeViewer.MaxImagesInBuffer = 1;
文章图片
如何在两个视窗之间同步图像?
通过上述实现,您只需要使用左侧的对象(用于扫描/编辑/上传的缩略图等。主查看器仅显示当前图像。当前图像更改时,您需要更新主查看器。
DWObject.RegisterEvent(“OnMouseClick”,Dynamsoft_OnMouseClick);
function Dynamsoft_OnMouseClick(index){//当您单击缩略图中的一个图像时触发
updateLargeViewer();
}
DWObject.RegisterEvent('OnBitmapChanged',updateLargeViewer);
//当图像被更改时触发,如翻转,裁剪,旋转等
function updateLargeViewer(){
/ *将当前图像复制到剪贴板* /
DWObject.CopyToClipboard(index);
/ *将相同的图像从剪贴板加载到大型查看器中* /
DWObjectLargeViewer.LoadDibFromClipboard();
}
上面显示的代码使用系统的剪贴板在查看器之间移动图像。还有其他两种方法可以实现如下所示的相同功能。
1.使用图像的URL(GetImageURL)
function updateLargeViewer(){
if(DWObject._ssl)
DWObjectLargeViewer.HTTPPort = DWObject._portSSL;
else
DWObjectLargeViewer.HTTPPort = DWObject._port;
var imgURL = DWObject.GetImageURL(DWObject.CurrentImageIndexInBuffer);
DWObjectLargeViewer.HTTPDownloadEx(DWObject._ip,imgURL.substring(imgURL.indexOf( 'IMG') - 1),3);
}
2.使用base64二进制文件(ConvertToBase64),这比上面的解决方案要慢,因为转换为base64二进制文件需要时间。
function updateLargeViewer(){
DWObject.ConvertToBase64(
[DWObject.CurrentImageIndexInBuffer]
EnumDWT_ImageType.IT_PNG,
function(result){
DWObjectLargeViewer.LoadImageFromBase64Binary(result.getData(0,result.getLength()),EnumDWT_ImageType.IT_PNG);
},
function(errorCode,errorString){
console.log(“ErrorCode:”+ errorCode +“\ r”+“ErrorString:”+ errorString);
});
}
推荐阅读
- django-前后端交互
- IDEA|IDEA 创建工程
- 怎么压缩图片大小不影响质量
- 如若……
- 程序员需要知道的缩写和专业名词【转】
- 创建缔造完美教室,让每一间教室都闪闪发光
- Servlet原理|Servlet原理 二(Web应用与创建Servlet实例)
- 销售的乐趣
- 生命中最美不过平淡
- 企业为什么要融资