公司网站制作公司排名,网络营销推广方法结论,wordpress更改主题名,深圳服饰网站建设前言 众所周知#xff0c;Dotnet Core目前没有图形API#xff0c;以前的System.Drawing程序集并没有包含在Dotnet Core 1.0环境中。不过在dotnet core labs项目里可以见到MS已经在移植这个项目#xff0c;不过目前的版本只能在Windows上和NET541或DNX环境中才可以使用。 不过… 前言 众所周知Dotnet Core目前没有图形API以前的System.Drawing程序集并没有包含在Dotnet Core 1.0环境中。不过在dotnet core labs项目里可以见到MS已经在移植这个项目不过目前的版本只能在Windows上和NET541或DNX环境中才可以使用。 不过在dotnetConf的第二天有一个叫做SkiaSharp的开源项目被提及它是Google开源的跨平台2D图形APISkia的.NET封装目前只能在Full Framework上运行不过它以后会支持Core。 现状 据我了解Dotnet Core目前没有可用的验证码组件可用原因就是没有Core的图形接口。所以我的方案是通过开源的图形库来对dotnet core进行支持。 使用CImg开源库 CImg 库是一个免费、开源的图像处理C库名称原意是 Cool Image正如其名CImg是一个非常优秀、功能强大、代码简洁、使用方便的C 图像处理库。它不仅非常适合科学家、研究生做科研时使用也适合在工业应用工程开发中使用更适合的是对于有志于开发简洁、高效、功能强大的图像处理库的人而言CImg的源码是不可多得的学习和参考资料。 CImg 官网http://cimg.sourceforge.net/ 可移植性它完全兼容于操作系统如Windows, Unix, Linux, MacOS X, *BSD...也完全兼容与编译器如 VC, g, icc...等具有高度的可移植性。 轻便性CImg 非常轻便整个库只用一个文件cimg.h。任何C应用程序只需要将该头文件包含进工程中即可使用该库的全部功能。它只定义了四了类模板和两个名称空间。该库只依赖与标准C和STL只在显示类部分依赖与操作系统的GDI再也不依赖任何其他的外部库。 C封装 我把绘图逻辑都放到了一个C项目中再用Core项目使用DllImport进行调用。 而且想到跨平台在Win下我们使用Win32的DLL库进行编译在Linux下使用g直接对源代码进行链接编译; 下面是项目中最主要的CaptchaImage.cppWin32下它会被放到项目中 CaptchaImage.cpp 头文件 CaptchaImage.h 这里为了跨平台编译我将stdafx.h文件进行了修改如下 stdafx.h Dotnet Core平台封装 LibCaptchaImageWarp.cs 编译 Win32编译就不用说了直接在VS2015里编译就好但是一定要注意的是要编译为X64平台的目标代码因为我们的Dotnet Core只支持x64平台 主要说下Linux编译目前我只在Ubuntu 14.04进行了编译测试编译时CImg依赖也X11所以要在编译环境中安装X11开发库当然Ubuntu也需要64位 sudo apt-get install libx11-dev 接下下是编译 把那个Win32项目Copy到Linux中然后Bash到目录下执行 g CaptchaImage.cpp -fPIC -shared -o libcaptchaimage.so 然后当你发布程序时一定要将libcaptachaImageWarp.dll 和 Win32 Dll 或 libcaptchaimage.so 文件一起放到程序执行目录。 最后 看看效果吧 验证码源码https://github.com/maxzhang1985/YOYOFx/tree/master/Native Demohttps://github.com/maxzhang1985/YOYOFx/tree/master/CoreHost QQ群214741894 Demo和源码在https://github.com/maxzhang1985/YOYOFx YOYOFx是一个基于Core和Owin的框架项目没有依赖微软的MVC框架支持在.net 4.5和Mono上直接SelfHost或使用Tinyfox跨平台运行 也支持在Dotnet Core 1.0 RC2 实现跨平台运行 框架刚刚写出来还没有文档请大家见谅。 欢迎大家Star和Fork 原文地址http://www.cnblogs.com/maxzhang1985/p/5584528.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注