未找到

未发布 条码识别控件Dynamsoft Barcode Reader更新至v5.2丨附下载
by Harriet666 keys 分享 1505814675249
Dynamsoft Barcode Reader SDK一款多功能的条码读取控件,只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序,能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。
 
 
31935a2406f642ab98a8a5a6ebf07737ojpg
 

Dynamsoft Barcode Reader v5.2新版本更新和改进仅适用于Windows Edition。
 
新版本的亮点:
  • 通过优化的本地化和识别算法,提高了PDF417的识别性能。
  • 通过优化的去模糊算法提高了1D条形码的识别精度。
  • 现在可以设置暂停条形码识别。
 
改进:
  • 改进了PDF417条形码的本地化和识别算法。
  • 优化了1D条形码的去模糊算法,提高识别精度。
  • 现在可以暂停条码识别。
  • 增加B&W图像的QR码和数据矩阵条码识别速度。
修复:
  • 小的修复和调整。
未发布 wemall软件交易平台微信图文编辑器部分代码分享
by wemallshop keys 开源 1477038974603
未发布 有图有故事 - Watson Analytics 解析幸福指数
by chenjunji123456 keys 分享 1466993035547
Watson Analytics是IBM基于Watson认知技术构建的一个创新云分析平台,它为用户提供了一系列自助式的分析服务,包括数据准备、数据探索、预测、构建分析仪表盘等。
未发布 给Android初学者的一些小建议
by AABBbaby keys 分享 1442976395273
本文为所有的Android新手们提供了十条开发Android应用程序的建议,希望对初学者们有所帮助!下面的Android开发技巧是程序员大神总结的个人经验,总共十条,希望能对Android初学者们有所帮助,欢迎大家品鉴!
在OnceIO(Node.JS)中用Redis储存Session
by ourjs keys JS学习 Node.JS 1483692256951

单线程的 Node.js 为了充分利用 CPU 的多核特性,采用了 cluster 模块,利用主从模式,生成与 CPU 核心数量相当的子进程,主进程捕获请求随机分配给子进程处理,并负责子进程的崩溃重启。进程与进程之间是不能共享数据的,如果把 Session 存储在内存里,存储在不同进程的内存中的 Session 将无法共享,Session 认证机制会出现问题。例如,用户 A 认证的过程是由进程 1 处理的,那么维持会话的 Session 将保存在进程 1 的内存数据中;用户 A 接下来的请求被分配给进程 2 处理,因为进程 2 没有处理过用户 A 的认证,没有维持这个会话的 Session,所以进程 2 会判断用户 A 并没有授权。这样用户 A 需要多次重复认证访问才能继续下去。

Sortable极小的可拖放排序分组库;支持AngularJS,React,Meteor
by ourjs keys 大话编程 分享 1423465703467
为现代浏览器和触摸设备拖放排序列表设计的简约JavaScript库。不依赖jQuery。支持Meteor,AngularJS,React,任意CSS库,如Bootstrap。注* minify压缩后10K左右, Gzip后4K
  • 支持触摸设备主流游览器(IE8+)
  • 可以在列表内和列表间拖动
  • 移动物品时支持CSS动画
  • 支持拖动手柄和可选择的文字(比voidberg的html5sortable更好)
  • 智能的自动滚屏
  • 使用内置的HTML5拖放API
  • 支持Meteor和AngularJS
  • 支持任何CSS库,例如Bootstrap
  • 简单的API
  • 不依赖jQuery(但支持)
未发布 微信里的 Office 365 —— Office 365 微助理打造移动办公新体验
by Harriet666 keys 分享 1514971150710
在2017微软技术暨生态大会(Microsoft Tech Summit)上, 微软宣布Office 365微助理正式商用。Office 365微助理将微软Office 365的生产力服务扩展到微信平台,能够在人们熟悉的微信操作界面中,为企业及用户带来 Office 365 的安全性、管理性和更多深层功能。这项由微软中国自主研发的全新功能能够为习惯利用微信进行日常沟通和工作的中国用户,提供一个功能强大、智能化,且简单易用的移动办公和通信解决方案。此外,Office 365 微助理还允许第三方合作伙伴开发出更多基于 Office 365 平台的商业解决方案。
 
Office 365商用客户将可以通过产品官方页面部署中文版的Office 365微助理服务。
 
Office 365 微助理
 
Office 365为微信带来全新生产力工具
作为中国影响最广的移动社交软件,微信拥有超过 9 亿活跃用户,且大部分用户每天都在频繁使用微信。人们不但将微信用于私人交流,同时也经常将其用于日常的工作沟通和相互协作。但把私人微信用于工作,常常会让人手忙脚乱,因为用户要经常在微信、电子邮件、语音通话及更多其它应用之间来回切换;与此同时,企业 IT 部门则要为如何确保这些基于聊天的交流和数据的安全、可追踪、可管理而大伤脑筋。
 
Office 365 微助理将企业级的安全性、管理性,以及统一的通信及协作工具与微信的操作体验融会贯通。通过将 Office 365 服务植入微信,用户和企业既能继续使用他们最熟悉的通信工具,同时又能得到由 Office 365 提供的更高水平的生产力、团队协作能力,以及安全性的保障。
 
实现高效沟通及信息管理
Office 365 微助理的智能通知(intelligent notifications)功能可以帮助用户更高效地管理信息,并在微信中更轻松地找到联系人和文档。用户不但能及时收到邮件和会议提醒,还能在组织内快速查找联系人、文件和邮件信息。Office 365 微助理能确保信息发布的安全性,员工也可以通过公司内网查看企业内部的政策规定或及时获取 IT 部门的支持。Office 365 微助理还能提供对最近打开的文档或常用联系人的快速访问,智能识别图片信息,并能生成可以编辑的 PowerPoint 文档。
通过“个人助理”接收工作提醒
 

 

 
通过“同事圈”了解同事动态
促进高效的团队协作
Office 365 微助理不但能帮助用户快速与同事取得联系,还提供了安全的文档共享服务、基于人工智能的智能会议调度及任务协调功能,可以显著提升团队协作的效率。用户可以通过多种方式与他人沟通,包括使用企业通讯簿快速查找特定联系人,通过身份同步(ID sync)自动将 Office 365 联系人同步到企业通讯簿中。此外,用户还能够借助 OneDrive 安全地共享文件。所有讨论交流都可以自动存档,便于以后参考使用。
通过“团队协作”查看最近联系人
确保企业级的信息安全和管理性
利用 Office 365 微助理,企业可以对数据访问权限进行更好的管理,对数据进行更周全的保护,在确保合规的同时,提供简单易用的管理性。微信将得到企业级的数据保护,静态数据和传输中的动态数据都能全程得到增强的数据保护。收到文档的用户需要具有相应的权限才能对文档进行访问和共享,对于保密文档,用户浏览文件时就会自动添加水印,同时禁止文档转发。
Office 365 微助理能确保员工进入与其身份、职责相符的聊天群组或对话中,从而有效防止信息泄露。同时,每名员工的Office 365 账户信息与其企业微信身份始终保持同步,因此 IT 管理员能够轻松地对用户身份进行统一管理。Office 365 平台与微信的集成,不但能为企业提供企业级的数据保护,同时还能确保移动设备上的数据安全。

 

 
IT 管理员能够轻松地对用户身份进行统一管理
 
即刻体验 Office 365 微助理
从今天开始,Office 365 商用客户将可以通过产品官方页面即刻部署和使用 Office 365 微助理服务。
 
(本文转自微软官网
apple
深入理解JavaScrip面向对象和原型继承
by ourjs keys JS学习 JavaScript 1460508726789

作为一门被长期误解的编程语言,javascript一直被人所诟病.但是如果你真正的了解它之后,你会深深的爱上它.

首先,javascript是一个面向对象的编程语言,而且是一个纯粹的面向对象.虽然很多人不能理解,因为在他们眼中,只有像java,c++这样的编程语言才能称之为面向对象.但是,我只想说,你误解我,是因为你不懂我.

未发布 工业仪表盘控件Iocomp .NET WinForm V5 SP0发布
by 鸟栖沙岩 keys 分享 1472114271856
工业仪表盘控件Iocomp .NET WinForm发布V5 SP0版本,添加VS2015支持。

新特性:

  • 添加VS2015支持(集成工具箱与帮助)。Iocomp 4.5程序集与(4.5.1), (4.5.2)和(4.6)目标程序完全兼容
  • 添加DoSnapToPoint方法到PlotDataCursorBase对象。调用此方法将会使对齐到最近的data-point的data-cursor不受SnapToPoint属性设置控制
  • 添加TitleColorStyle属性到PlotLegendBasic(TitleColorStyle支持4种选项:ForeColor, ChannelColor, XAxisColor, YAxisColor)
  • 添加MarkersTurnOffLimit属性到以下列出的通道类型:
未发布 【示例教程】使用leadtools的WCF接口功能实现从web端上传Dicom影像文件
by Harriet666 keys 分享 1517903663716
Leadtools 19总套包下载>>>
 
leadtools为web端提供了wcf接口来供用户可以登录pacs系统,检索,查看以及上传影像。本篇博客讲解如何创建一个网页来实现上传功能,通过WCF进行dicom文件的上传时,是将dicom文件转换为base64数据流,分段进行传输。
 
本篇博客运行的前提是已经部署完成Leadtools HTML5 Web Viewer,可以正常浏览。参考https://www.evget.com/article/2018/2/6/27757.html
 
在部署完成后,将下面的代码复制到一个HTML文件中,即可运行进行测试。另外需要添加html文件所需的jquery.min.js到同文件夹路径下。
<head>
    <meta charset="UTF-8">
head>

<form onsubmit="return false;">
    <input type="hidden" name="file_base64" id="file_base64">
    <input type="file" id="fileup" multiple="multiple">
    <input type="submit" value="submit" onclick="$.post('./uploader.php', $(this).parent().serialize());">
    <div>
        <div id="msg">div>
    div>
form>
<script src="scripts/jquery.min.js">script>
<script>

    $(document).ready(function () {
        authcookie = login();
        document.cookie = "authcookie=" + authcookie;
        $("#fileup").change(function () {
            getauthcookie("authcookie");
            filelist = this.files;
            file = filelist[fileindex];
            upload(file);
        });
    });
    var authcookie;//保存authcookie
    var filelist;//上传文件列表
    var file;//当前上传文件
    var tempfile = "";//临时文件名称
    var position = 0;
    var size = 40000;//分段大小
    var done = false;
    var fileindex=0;//当前上传文件序列号

    function upload(tempfile) {
        if(position==0)
            done=false;
        var reader = new FileReader();
        if (file.size > position + 40000)
            reader.readAsArrayBuffer(file.slice(position, position + 40000));
        else 
            reader.readAsArrayBuffer(file.slice(position, file.size));
        reader.onload = function (e) {
            if (e.target.readyState === 2) {
                var base64string = base64ArrayBuffer(e.target.result);
                var data = {
                    authenticationCookie: authcookie,
                    dicomData: base64string,
                    fileName: tempfile,
                    status: position==0?"start":"append"
                };
                tempfile = senddata(JSON.stringify(data));
                if (!done) {
                    position += 40000;
                    upload(tempfile);
                    if (position+40000>file.size)
                        done = true;
                }
                else {
                    var data = {
                        authenticationCookie: authcookie,
                        dicomData: "",
                        fileName: tempfile,
                        status: "done"
                    };
                    tempfile = senddata(JSON.stringify(data));
                    position = 0;
                    $("#msg").html($("#msg").html()+"第"+(fileindex+1)+"个文件已经上传完成

"); fileindex += 1; if (fileindex < filelist.length) { file = filelist[fileindex]; upload(tempfile); } else { fileindex = 0; $("#msg").html($("#msg").html() + "文件全部已经上传完成

"); } } } }; } function senddata(data) { var result; $.ajax({ type:"post", url: "http://localhost/MedicalViewerService19/StoreService.svc/UploadDicomImage", data: data, contentType: "application/json", dataType: "json", success: function(data){result= data}, async: false }); return result; } function login() { var auth; var logininfo = { userName: "a", password: "a", userData: "" }; $.ajax({ type: "post", url: "http://localhost/MedicalViewerService19/AuthenticationService.svc/AuthenticateUser", data: JSON.stringify(logininfo), contentType: "application/json", dataType: "text", success: function (data) { auth= data }, async: false }); return auth; } function query() { } function getauthcookie() { document.cookie.split(";").forEach(function (val, index) { var index = val.indexOf("="); if ($.trim(val.substring(0, index)) == "authcookie") { authcookie = $.trim(val.substring(index + 1, val.length)); } }); return ""; } function base64ArrayBuffer(arrayBuffer) { var base64 = ''; var encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; var bytes = new Uint8Array(arrayBuffer); var byteLength = bytes.byteLength; var byteRemainder = byteLength % 3; var mainLength = byteLength - byteRemainder; var a, b, c, d; var chunk; // Main loop deals with bytes in chunks of 3 for (var i = 0; i < mainLength; i = i + 3) { // Combine the three bytes into a single integer chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; // Use bitmasks to extract 6-bit segments from the triplet a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18 b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12 c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6 d = chunk & 63; // 63 = 2^6 - 1 // Convert the raw binary segments to the appropriate ASCII encoding base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d]; } // Deal with the remaining bytes and padding if (byteRemainder == 1) { chunk = bytes[mainLength] a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2 // Set the 4 least significant bits to zero b = (chunk & 3) << 4; // 3 = 2^2 - 1 base64 += encodings[a] + encodings[b] + '=='; } else if (byteRemainder == 2) { chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]; a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10 b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4 // Set the 2 least significant bits to zero c = (chunk & 15) << 2 // 15 = 2^4 - 1 base64 += encodings[a] + encodings[b] + encodings[c] + '='; } return base64; } script>

6


 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. 在无管理员权限的情况下,使用安装Python补全 pip临时配置环境变量
  2. Python鉴权方法:Depends 依赖注入;装饰器;与基于Proxy模式的Session状态管理自动计算脏属性;将用户数据存储在Redis中
  3. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  4. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  5. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  6. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  7. Node.js 打印vite react+go项目目录树
  8. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  9. Windows与Mac通过git ssh和rsync实现文件共享互传
  10. Windows与Mac通过git ssh和scp实现文件共享互传

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA