未找到

未发布 邮件客户端WebMail Pro v7.7.5发布,在线订购限时75折优惠!
by Harriet666 keys 分享 1499999118220
AfterLogic WebMail Pro是基于网页并以脚本开发的邮件客户端。能以前端模式与现有的邮件服务器或内置邮件服务器工作。
 
WebMail Pro7.7.5最新版下载>>>

WebMail Pro


WebMail Pro v7.7.5更新内容
  • 增加SQLite支持(实验)
  • 新增模板功能,分配用于存储模板的文件夹(webmail.allow-template-folders)
  • 修复在5.3.9之前的PHP版本中日期时间计算问题
  • Bug修复
未发布 【示例教程】使用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

未发布 【教程】Edraw Max(亿图图示):怎么插入图片到思维导图中?
by Harriet666 keys 分享 1502356521857
Edraw Max(亿图图示)作为一款功能非常强大的可视化绘图软件,不仅操作简单,还具有直观、友好的绘图界面。尤其是在使用Edraw Max(亿图图示)绘制思维导图时,可以通过形象生动的画面再附上文字解释说明,能让思维导图更加的充实、易懂。
 
那么问题来了,在Edraw Max(亿图图示)思维导图中该如何导入外部图片呢?本文为大家演示详细操作步骤,一起来学习吧!目前Edraw Max(亿图图示)在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
 
Edraw Max(亿图图示)v8.7最新版下载地址>>>
 
第一步:新建“思维导图”,选择所需的模板或例子;
 
第二步:选中需要添加图片的图形,并点击“思维导图”栏上的“插入图片”,这样插入的图片就会和形状紧贴在一起;
 
第三步:选择图片,点击“打开”即可;
 
第四步:点击图片,被选中的图片四周会出现几个蓝色的小方框,只需轻轻拖动那几个小方框,就可以调整图片的大小了,如果需要等比缩放,拖住对角的四个小方框即可。

【百厂约惠】喜迎2018,CADSoftTools全线产品劲享6.7折!
by Harriet666 keys 分享 1514884931560
CADSoftTools已开发出一系列工业与建筑绘图软件产品。CADSoftTools旨在帮助客户更方便有效地处理设计与项目文档。CADSoftTools在读取、保存和编辑AutoCAD ™ DWG、DXF、 DWF 、HPGL、PLT、SPL、SVG 、 CGM 格式的文件方面具有自主核心技术。旗下产品CAD .NETCADViewXABViewerCAD EditorXCAD VCL EnterpriseWeb CAD SDKCAD DLL等产品深受用户的青睐。
 
CADSoftTools全线产品低至6.7折!全年仅此一次,错过不再有!
 
截止时间:2018.1.31
 
 
CAD.NET是一个在.NET环境中提供解决方案的库,
它支持AutoCAD®DWG,DXF,PLT及其它CAD格式。
 
 
CADViewX一款能让应用程序
具有强大CAD图像浏览和打印
功能的图像处理工具。
 
 
ABViewer是一款高质量的2D/3D文档查看器,
可提供专业的浏览、编辑和转换功能,
支持30多种光栅和矢量图形格式。
 
 
CAD EditorX提供易用
的API和大量的示例方便开发者快速集成。
 
 
 
CAD VCL Enterprise是一个
高品质多功能且含源码的控件。
 
 
 
 
用于通过Internet、Intranet、
Sharepoint、Office 365 及其他在线 HTML5
启用技术查看DWG和其他CAD文件。
 
                                                       
 
CAD DLL是一个为开发者打造的
新版本CAD库,可在支持动态链接
库技术的语言中添加CAD功能到应用程序中。
 
 

更多CADSoftTools产品点击查看>>>

未发布 Android Oreo 8.1终于发布正式版
by Harriet666 keys 分享 1513067839544
在推出开发者预览版一个月后,Android Oreo 8.1终于发布了正式版。除了之前InfoQ已经报道过的内容,Oreo 8.1还推出了Gero Go版,可运行在低内存配置的设备上。
 
在谷歌I/O 2017大会上发布的Android Go定位入门级机型,这些入门级设备的内存一般不会超过1GB。谷歌通过多种手段来达到该目的:
  • 全平台内存优化。
  • 优化谷歌官方应用,使用更少的内存、存储空间和网络带宽。
  • 推出新的Google Play特性,如FEATURE_RAM_LOW,以便更好地在入门级设备上运行。另外,Google Play为入门级设备推出了Go版本的应用,当然也可以安装其他任意一种应用。
Android Oreo 8.1最重要的一个特性是神经网络API(NNAPI),支持硬件加速,以便更好地执行机器学习任务,如创建、编译和执行模型。机器学习框架(如TensorFlow Lite等)可以使用NNAPI。
 
Android Oreo 8.1在下周就可以支持Pixel和Nexus,其他设备厂商则要等到下个月。Android 8.1的源代码已经发布出来了。

未发布 【示例教程】LEADTOOLS中如何用H.264压缩视频创建DICOM文件
by Harriet666 keys 分享 1510735677523
本篇文章教你如何配置LEADTOOLS DICOM Writer filter,创建一个以使用H.264传输MPEG-2的数据集。
 
这是一个用LEADTOOLS 19在Visual Studio 2017中构建的C #控制台应用程序,说明了如何配置LEADTOOLS DICOM Writer filter创建一个以H.264传输MPEG-2的数据集。这个例子编码高清视频(通过调整一个示例LEADTOOLS的媒体文件)创建一个MPEG-4 AVC/H.264 BD兼容DICOM文件。帧速率也用编码器设置为29.970 fps。
 
该项目使用一个模板视频DICOM文件作为它的起点。其他模板可以使用,如内镜,但它可能需要在DICOM数据集的其他标签。
 
在生成视频后,使用扩展方法更新DICOM文件以设置患者信息。有关所使用的扩展方法的详细信息,请参阅简单的DICOM扩展来读取或写入数据集标记。
 
代码也更新了SOP instance, series instance and study instance UIDs等文件,所以每次生成的文件都是唯一的。
 
注意:该代码设计为从下面的目录中提取并运行:
C:\LEADTOOLS 19\Examples\posts\t12193
 
它可以从其他位置运行,但有些代码可能需要更改。具体来说,您将需要更新DICOM模板文件路径。
 
另外,如果你的LEADTOOLS Medical Imaging SDK 和LEADTOOLS Multimedia SDK 是单独安装的,那么可能也需要更新相应的地址。
 
点击下面链接下载dmeo
DotNet- MMv19 - Programmatically Configure Dicom Writer.zip (88.97 kb)

2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 VectorDraw Developer Framework v7.7012.0.4发布丨附下载
by Harriet666 keys 分享 1504605177868
VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。
 
VectorDraw Developer Framework点击下载>>>
 
VectorDraw Developer Framework(VDF)v7.7012.0.2更新内容:

WebJS

新增需求(7.7012.0.3)
  • 70001119 支持vdraw Web控件
漏洞(7.7012.0.2)
  • 70001118 GetEntitiesFromLayer()方法中的错误
漏洞(7.7012.0.3)
  • 70001123 在scriptCommand.select中,IsCanceled总是返回true

Engine

漏洞(7.7012.0.2)
  • 70001114 手柄选择未正确更新,并且屏幕上仍然显示
  • 70001116 UpdatePropertiesFromPrinter丢失纸张信息
  • 70001117 GetLineTypeDlg的Wrapper不会返回正确的行类型
漏洞(7.7012.0.3)
  • 70001124 绘制大量图像的刷新问题
  • 70001125 删除特定折线中的RemoveInLinePoints
  • 70001126 3DPolyline未正确导入
未发布 GIS软件开发工具包TatukGIS Developer Kernel v11.8发布,改进DWG阅读器
by Harriet666 keys 分享 1507606466738
GIS定制开发首选控件,帮您轻松搞定高效、优质、实惠的GIS解决方案

TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。众所周知,构建一个庞大的地理信息系统需要花费大量的金钱和人力,而TatukGIS却是同类产品中性价比最高的控件,TatukGIS Developer Kernel DK因其功能强大,价格适中,已被超过 50个国家的个人、公司、以及政府等客户用来实现其地理信息系统解决方案。根据不同地首选开发环境,本产品分别以五个独立产品的形式提供(即VCL、.NET/WPF、ActiveX、Compact Framework和ASP.NET),各个产品使用相同的框架、应用程序编程接口(API)技术。
 
 
TatukGIS Developer Kernel v11.8更新内容
这个版本大大改进了DWG支持和新的可视域分析。
 
更新内容:
  • 改进DWG阅读器。DK-8319
  • 实现可视域分析。 DK-9643
  • .ttkstyle格式改变。请参阅当前规范:TGIS_ConfigXml类。DK-9686
  • AsText格式的广泛文档(参见:Param AsText语法)。DK-9681
  • 形状参数内存占用减少(对CAD层有重要意义)。 DK-9658
  • 文档中发布的所有示例源代码。
  • MouseWheel事件处理不一致。 DK-9654
  • 重新设计缩放示例以更好地说明鼠标滚轮的操作。 DK-9101
  • 重新设计ShapeOperations示例,以更好地说明使用最顶层(跟踪)图层进行地图快速更新。 DK-9653
  • 所有支持平台上的形状版本相同。 DK-9125
  • 改进了Pixel.TransprentZones与旧的.TTKGP和.INI文件的兼容性。 DK-9644
  • 改进了TIFF处理。DK-9647
  • 小的错误修复和改进。

【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】

活动时间:10月1日-10月30日

未发布 信息化JavaScript甘特图AnyGantt v8.0.0发布,新增时间轴标签设置方法
by Harriet666 keys 分享 1507801264510

AnyGantt是完全跨浏览器和跨平台的,可用于ASP.NET、ASP、PHP、JSP、ColdFusion、Ruby on Rails或简单的HTML页面。有了AnyGantt你可以从任何地方可视化数据:从文本、Excel、CSV格式中的文件到MySQL、MS SQL以及Oracle数据库服务器。(重要推荐:AnyGantt已加入在线订购,超值特价低至¥368起!

【点击下载AnyGantt v8.0.0最新版本】
AnyGantt v8.0.0更新:
Modular System  Robust JavaScriptHTML5 charts  AnyChart
模块化系统
模块化系统是AnyChart 8的核心。它允许您仅连接实际使用的图表类型和功能,大大减少了在网页上运行的大小。基于模块化的AnyChart与流行的捆绑工具(如Webpack,Browserify等)完全兼容。使用我们的JS Builder轻松生成自定义构建。
 
自定义JavaScript Builds
自定义JavaScript Builder专门用于组装一个仅包含需要使用的功能和图表类型的JavaScript文件。AnyChart 8.0.0版包含30个模块和 16个主题。您还可以创建含许可证密钥的文件 。
 
Node.js服务器端渲染
Node.js服务器是一个轻量级的Web服务器,提供用于生成矢量图形(PDF,SVG或PS)、位图图像(PNG,JPG或TIFF)、PDF报告和CSV和XLSX(Excel)中的数据的API。它使用JavaScript代码以及JSON和XML配置作为输入数据。服务器非常易于安装和自定义,您可以在任何主要平台上运行:Linux,Windows和macOS。它是创建通过电子邮件或社交网络共享工具发送图表的报表系统的理想选择。
 
No Data Label Feature  Robust JavaScriptHTML5 charts  AnyChart
无数据标签功能
无数据标签功能是用于通知图表查看器数据不可用的API。由于默认情况下缺少数据,或者通过“数据更新API”,“排除数据点”功能或通过交互性删除数据,则可能会丢失数据。
 
重做CSV/Excel导出
根据需求,我们重新编制了为图表准备的CSV/Excel数据的算法。现在,它考虑到图表类型的特定功能,并允许您为不同的系列使用多个数据集。
Chart Export Settings  Robust JavaScriptHTML5 charts  AnyChart
图表导出设置
现在,您可以自定义每个图表的导出设置:在Facebook上共享的链接和说明、图像导出选项等。
上下文菜单自定义API
我们大大简化了上下文菜单定制的过程。现在,上下文菜单中的每个项目都被分配了一个DI,可以访问相应的字段和设置以及添加自定义ID。我们还添加了本地化上下文菜单的选项。
一般的API改进
我们大大改进了第八代JavaScript图表库中的AnyChart JS Charts API。 界面设置、网格设置、数据映射设置现在变得很容易。为了方便和简化从
AnyChart 7到AnyChart 8的转换,我们创建了允许大多数用户以半自动模式切换到新版本的迁移工具。
Timeline Labels Settings  Powerful HTML5 Gantt charts  AnyGantt
时间轴标签设置
甘特时间线文本格式属性现在非常灵活。我们添加了以下方法:baseLabels(), baselineLabels(), parentLabels(), milestoneLabels(), progressLabels()。我们还重新编写了方法labels(),可以用它来设置任何类型的标签默认值。

【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】

活动时间:10月1日-10月31日

未发布 格式转换工具PDF Extractor SDK更新至v8.6.0.2911,修复对比度预处理过滤器
by Harriet666 keys 分享 1501752886016
PDF Extractor SDK是一款可以转换PDF为文本,CSV,XML,从PDF文件中提取图像和信息的多功能工具包。
 
【PDF Extractor SDK点击下载>>>】
 
PDF Extractor SDK v8.6.0.2911更新内容:
  • XMLExtractor,JSONExtractor,HTMLExtractor:添加了KeepOriginalFontNames属性。
  • TextComparer:添加GetChanges()方法以获得比较结果,方便进行程序化分析。
  • DocumentRotator:现在可以指定要旋转的页面。
  • TextExractor.ExtractColumnByColumn属性现在影响Find()方法。
  • 修复SearchResult元素中的字体名称。
  • 修复对比度预处理过滤器。
  • 修复下标和上标文本对象与正常文本合并的问题。
  • 其他小修改和改进。

 近期热门 - 点击最多
  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基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

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

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

OnceOA