创建缩略图查看器

使用Dynamic Web TWAIN,您可以在同一页面上放置2个控件来模拟缩略图+主要查看器。

如何在一个页面中定义两个控件


在HtmlPage.html中

<HTML>
<HEAD>
<TITLE>缩略图</ TITLE>
</ HEAD> <BODY>
<! - 放置两个DIV来保持DWT控件 - >
<div id =“dwtcontrolContainer”style =“float:left; width:120px;”> </ div>
<div id =“dwtcontrolContainerLargeViewer”style =“float:left;”> </ div>
<! - 放置两个DIV来保持DWT控件 - >
<script type =“text / javascript”src =“Resources / dynamsoft.webtwain.initiate.js”> </ script>
<script type =“text / javascript”src =“Resources / dynamsoft.webtwain.config.js”> </ script>
<script type =“text / javascript”>
  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);
    });
}

 

bkViewer中文版是一款非常方便数码照片的浏览和集中处理工具,并且它还可以批量预览图片缩略图,如果您打算截图多个图片的预览效果,选它就对了。 软件说明 bkViewer不会在磁盘中增加任何冗余信息,直接利用现存文件夹方式对图片进行预览和浏览; bkViewer通过外挂程序对图片进行处理,同时也具有图片缩放、翻转、剪切、亮度锐度饱和度调整等最常用的基本编辑功能; bkViewer可以直接显示EXIF/IPTC/XMP/ICC数码照片拍摄参数信息和直方图,可详细查看镜头型号、防抖、快门次数等厂商标记; bkViewer支持解析的厂商标记包括Canon、Casio、Epson、FujiFilm、Kodak、KonicaMinolta、Leica、Nikon、Olympus、Panasonic、Pentax、Ricoh、Sanyo、Sigma、Sony等多家厂商; bkViewer支持通过IE、Firefox、Opera、Chrome右键菜单或扩展在线查看网页图片的拍摄信息; bkViewer支持实时像素拾色,方便的播放幻灯片或发送电子邮件,或将图片拖放到QQ窗口传递; bkViewer对后期处理的图片自动建立PS目录进行备份。当然,您也可以直接编辑而不备份,决定权在您; bkViewer支持图片预读以提升浏览速度,批量缩放等功能支持多核系统并行处理。它只有一个数百K的可执行文件,可以方便的拷贝运行; 除jpg、bmp、dib、rle、tif、png、gif、wmf等通用图片格式外,bkViewer还支持ttf、ttc字体预览,以及Canon(CR2/CRW), Nikon(NEF/NRW), Fuji(RAF), Leica(RAW/DNG), Kodak(DCR/KDC), Olympus(ORF), Pentax(DNG/PEF/RAW), Sony(ARW/SR2), Minolta(MRW), Panasonic(RAW/RW2), Richo(DNG), Samsung(SRW/DNG), Leaf(MOS), Hasselblad(3FR), Mamiya(MEF), Epson(ERF)等原始格式图片浏览及标记解析。 从bkViewer 3.0版本开始使用Windows GDI 图像处理引擎,未安装GDI 的系统需要下载GdiPlus.dll并放入bkViewer所在目录或系统目录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值