WinForms注释图像查看器(AnnotationViewer类):
Java社区进程(JCP)执行委员会的成员Ben Evans认为最急需重构的应用恰好就是最适合进行模块化的应用。如果你已经备受Lava Flow/God Class/Stovepipe System地狱的折磨,而且你的利益相关方明确知道这一点,那么你可能更容易说服他们进行一次完整的底层重构,通过渐进式的努力形成一个完成的模块解决方案(而不是简单重构并迁移至Java 8)是值得去做的。
对特定类型的应用来说,这是很有帮助的。例如,我曾经见到有的电子商务网站具有非常大的堆空间,其中包含了大约40G的字符串数据。Java 9的ompact Strings技术能够将这种类型的内存使用减半。这反过来又会对GC的性能带来积极的影响。对于有些应用来说(这可能就包括大型的Solr安装环境及类似场景),单单这一项收益就值得将运行时升级到Java 9。
这项变更是很重要的,因为相对于Parallel来说,G1会在应用线程上做更多的事情,而Parallel几乎没有在应用线程上做任何事情,它基本上完全依赖GC线程完成所有的内存管理。这意味着切换到G1将会为应用线程带来额外的工作,从而直接影响到应用的性能。 在很多(甚至可以说大多数)场景中,这种额外的性能损耗都不是什么问题。但是,在这方面,我确实也曾经见过从Parallel切换到G1时,有一定比例的工作负载会引起性能的下降。对于这些应用来说,这种性能下降是无法接受的,所以他们无法切换至G1收集器。随着G1成为默认的收集器,这将会影响到升级至Java 9的每个应用。
C#
Pop3 pop = new Pop3();
pop.Connect("mail.domain.com");
pop.Login("jdoe", "secret");
VB.NET
Dim pop As New Pop3()
pop.Connect("mail.domain.com")
pop.Login("jdoe", "secret")C#
Pop3 pop = new Pop3();
pop.Connect("mail.domain.com");
pop.Login("jdoe", "secret", AuthenticationMethods.Apop);
VB.NET
Dim pop As New Pop3()
pop.Connect("mail.domain.com")
pop.Login("jdoe", "secret", AuthenticationMethods.Apop)C#
pop.Login("jdoe", "secret", AuthenticationMethods.Auto, AuthenticationOptions.PreferSimpleMethods, null);
VB.NET
pop.Login("jdoe", "secret", AuthenticationMethods.Auto, AuthenticationOptions.PreferSimpleMethods, Nothing)C# pop.Login(null, null, AuthenticationMethods.SaslNtlm); VB.NET pop.Login(Nothing, Nothing, AuthenticationMethods.SaslNtlm)




1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <title data-filtered="filtered">Hello World</title><script type="text/javascript" src="Resources/dynamsoft.webtwain.initiate.js" data-filtered="filtered"> </script><script type="text/javascript" src="Resources/dynamsoft.webtwain.config.js" data-filtered="filtered"> </script><input type="button" value="Scan" onclick="AcquireImage();"><div id="dwtcontrolContainer"> </div><script type="text/javascript" data-filtered="filtered"> var DWObject; function Dynamsoft_OnReady(){ DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer'); } function AcquireImage(){ if(DWObject) { DWObject.IfDisableSourceAfterAcquire = true; DWObject.SelectSource(); DWObject.OpenSource(); DWObject.AcquireImage(); } } </script> |
1 | Dynamsoft.WebTwainEnv.Containers = [{ContainerId:'dwtcontrolContainer',Width:270,Height:350}]; |
1 | Dynamsoft.WebTwainEnv.Containers = [{ContainerId:'dwtcontrolContainer',Width: '50%',Height:350}]; |

1 2 3 4 5 6 | .DYNLogo { background:url(logo.gif) left top no-repeat; width:159px; height:39px; } |

1 2 3 4 5 6 7 8 9 10 11 12 | function OnWebTwainNotFoundOnWindowsCallback(ProductName, InstallerUrl, bHTML5, bIE, bSafari, bSSL,strIEVersion) { } /* This callback is triggered when Dynamic Web TWAIN is not installed on a PC running Windows */ function OnWebTwainNotFoundOnMacCallback(ProductName, InstallerUrl, bHTML5, bIE, bSafari, bSSL,strIEVersion) { } /* This callback is triggered when Dynamic Web TWAIN is not installed on a MAC */ function OnWebTwainOldPluginNotAllowedCallback(ProductName) { } /* This callback is triggered when Dynamic Web TWAIN is disabled by a non-IE browser */ function OnWebTwainNeedUpgradeCallback(ProductName, InstallerUrl, bHTML5, bMac, bIE, bSafari, bSSL,strIEVersion) { } /* This callback is triggered when Dynamic Web TWAIN installed on the machine is older than the //one onthe server and upgrade is needed */ |
本次教程到此结束,希望能对Dynamic Web TWAIN的用户带来帮助,接下来还会有更多的相关教程,敬请期待!
包含示例 ![]() | 排除示例 ![]() | 包含+排除示例 ![]() |


我们很高兴地宣布Dynamic Web TWAIN(DWT)新版本v13.0已经发布,即跨浏览器、跨平台的Web扫描SDK。这个升级主要实现了一个新的设计 - 新的Dynamsoft服务加上不同的成像模块(扫描、摄像头捕获、PDF、条形码阅读器和OCR)。







