关于.NET下开源及商业图像处理(PSD)组件

原文 http://www.cnblogs.com/asxinyu/archive/2013/03/21/2972491.html

1 前言

这篇博客的背景是:为了完成吉日嘎拉的“PSD文件损坏检测和图层检测”任务,查找了目前.NET各种开源的及商业的图像处理资料,在完成任务之后,进行总结。此次任务主要是用C#操作PSD(PhotoShop)文件,中文资料很少,主要的英文资料都在CodeProject网站。项目要求对用户上传的PSD文件进行检测,是否损坏,是否能正常打开,并判断是否只有1个图层。俗话说:“冰冻三尺非一日之寒”,这次找关于C#处理PSD的开源资料,真是“挖地三尺”,我也觉得这“非一日之力”就可以做到。平时关注技术,了解很多,找起来才快,也需要一点主动学习的能力。

2 .NET图像处理组件总结

说起图像处理,肯定很多人都知道博客园的xiaoite,用.NET做图像处理,很强大。由于图像处理的特殊性,可能很多人认为.NET做图像处理效率有问题,但xiaoite用实际证明了其实这都不是问题,大家可以去他的博客详细了解下。呵呵,我只是一个菜鸟,把别人现成的东西组合一下,会使用而已。那下面介绍一下,我找到的几个.NET图像处理组件(和PSD相关的)。

2.1 Paint.NET

.NET下的图像处理开源项目,最有名的应该是Paint.NET,小巧,灵活,足够强大,相比笨重收费的PhotoShop,这真是一个不错的选择。虽然该项目源代码现在不开放了,但软件使用仍然是免费的。昨天看了一下他的dll,没有混淆,有精力的可以去反编译看看。我的解决办法也是从这个项目找到的答案。Paint.NET的源代码3.1版本的应该还可以在网上找得到,另外Paint.NET也有很多插件,比如Paint.NET_PSD_Plugin,就可以用插件来加载PSD文件,并转换为Paint.NET的格式。前几天,给一个朋友PS2张简单的图片,用的就是Paint.NET,操作和PhotoShop差不多,界面很清爽,功能足够强大吧,推荐一下。

2.2 Imagemagick.NET

Imagemagick.NET是用C#对开源的Imagemagick图像处理组件的进行了一个封装。里面的代码大部分都是C++/CLI,能力有限,没有深入研究。看了一下说明,支持的格式很多,但对PSD文件的图层和文件损坏检测也没有现成的,不过,这个项目的确很值得学习,有机会研究下 C++/CLI,对图像处理应该有很大帮助。Imagemagick支持的语言和平台都很广泛,值得一看。

2.3 Skimpt

Skimpt其实这个组件以前没看到过,是一个.NET下开源的屏幕截图软件。它的大部分代码我没仔细看,只发现它支持PSD文件,所以就主要看了看PSD操作的部分,相对不错,PSD代码部分也是借鉴了CodeProject上面的几篇文章。都很相似,不过都修改了不少错误,这个其实还不错,勉强可以正确判断图层,但是对PSD文件的损坏检测不了,它只是直接读取文件的头信息,并不去检验数据的正确性。如果有做屏幕截图之类的工具,这是一个不错的参考。虽然没用里面的代码,但也发现Google Code其实也有很多不错的项目。

2.4 ImageGlue.NET 

ImageGlue.NET是商业的图像处理组件,支持的格式列了一大堆:支持的格式。由于这个组件我很早就知道,但没用过,手上也有破解版,所以就试了一下,可以对PSD文件的损坏检测,但是对图层的判断一直出错,有时候是正确的,有时候是错误的,商业组件做成这样,一怒之下,抛弃它了,而且破解版也不太敢用,当时只是试试看好用不,然后把里面的一小段代码弄出来就可以了,没想到这货还调用了非托管的dll,代码没虽然有混淆,但命名空间足够的坑爹,对图像的一些基本处理应该还是不错的,关键是支持的格式全面。留个脚印,让大家以后也有个选择。

2.5 其他关于.NET操纵PSD的文章

其实我首先查到的还是codeproject上的一篇2006年发表的英文博客Yet Another PSD Parser。该作者也是为了完成一个PSD的项目,需要.NET操作PSD文件,而处于版权和许可证的原因,没有采用Adobe公司的SDK,而是自己开发了这套组件。这个组件也是作者Endogine项目(一个2D的图像游戏引擎)的一部分,但可惜的是这个组件好像没有完善,这篇文章也没有更新,有不少错误。

3.相关资源网址

http://psdplugin.codeplex.com/

http://www.codeproject.com/Articles/10768/Endogine-sprite-engine

http://www.codeproject.com/Articles/15905/Yet-Another-PSD-Parser

http://www.websupergoo.com/download.htm

PSD官方格式信息

http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/

http://www.aurigma.com/docs/gm/Overview.htm

http://midimick.com/magicknet/magickDoc.html

http://www.codeproject.com/Articles/17852/ImageMagick-in-VB-NET

http://code.google.com/p/skimpt/

http://imagemagick.codeplex.com/releases/view/30302

编程爱好者,关注.NET软件开发,Matlab编程及网络技术

http://www.cnblogs.com/asxinyu/

E-mail:1287263703@qq.com

 

时间: 2024-09-20 08:54:21

关于.NET下开源及商业图像处理(PSD)组件的相关文章

开源 VS 商业,消息中间件你不知道的那些事

11月23日,新炬网络中间件技术专家刘拓老师在DBA+社群中间件用户组进行了一次主题为"开源 VS 商业,消息中间件你不知道的那些事"的线上分享.小编特别整理出其中精华内容,供大家学习交流.  嘉宾简介   新炬网络中间件技术专家 曾任职于IBM华南GTS 4年,IBM WebSphere.MQ.CICS产品线技术专家 5年移动运营商(广东移动.浙江移动)运维经验,3年JAVA开发及售后经验 演讲实录   随着云计算的兴起,Docker.微服务的流行,分布式消息队列技术成为云计算平台中

为开源和商业正名

头条君先说两句. 看到某厂一高级技术专家说"没本事才开源",觉得这个说法太有趣了,便发了一条微博,感慨一下. 我其实没有立场,仅仅是感慨,结果引来开源布道者.我一贯尊重的适兕老师愤慨,他好勤奋,立刻夜成此文,无情吊打我以及我这样在他眼里压根儿没有领会开源精神的"不幸者". 我赶紧揽镜自省,但同时禀性难移冒刺儿,例如兕老师说开源的技术是领先的,还举了例子,我却一边看一边摇头. 自由和开源,开源和商业,开源精神和开源生意,是人性复杂性的最佳体验场,很有趣. 以下为原文

iOS 下使用 OpenCV 实现图像处理

i iOS 下使用 OpenCV 实现图像处理 目的 在这个教程中我们将学习如何在 iOS 上用 OpenCV 实现基本的图像处理. 介绍 在 OpenCV 中所有的图像处理操作一般是基于 Mat 结构来进行的.而 iOS 上要在屏幕上显示图片用的是 UIImage 控件实现.为了将 OpenCV Mat 转成 UIImage 我们需要用到 Core Graphics 框架.下面的代码用来在 Mat 和 UIImage 对象之间进行转换. - (cv::Mat)cvMatFromUIImage:

广西召开了互联网时代下广西企业商业模式高层研讨会

6月7日,广西召开了http://www.aliyun.com/zixun/aggregation/3519.html">互联网时代下广西企业商业模式高层研讨会,来自华为公司.北京信索公司的技术专家列举了后危机时代的客观环境与当今中国企业存在的问题,解析了信息化商业模式与营销变革及企业深层信息化的提升.近年来,广西越来越重视提升企业信息化水平.促进两化融合,不仅出台系列扶持政策,还成立了专门的"两化融合"服务机构.日前,广西印发了<关于下达2012年第一批技术改造

在python3下用PIL做图像处理

Python Imaging Library (PIL)是python下的图像处理模块,支持多种格式,并提供强大的图形与图像处理功能. 目前PIL的官方最新版本为1.1.7,支持的版本为python 2.5, 2.6, 2.7,并不支持python3,但有高手把它重新编译生成python3下可安装的exe了.这一非官方下载地址 http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil  或者直接点下面: PIL-1.1.7.win32-py3.2.‌exe  

特斯拉开源的商业逻辑

特斯拉共享专利的商业逻辑对很多科技公司而言,技术就是一切,所以科技公司对于专利的申请和维护都是非常在意的事情.这种心情,看看苹果三星几乎遍布全球的专利大战,就能略知一二.但是现在,正在火爆兴头上的电动汽车厂商特斯拉宣布:将免费公开其所有专利. 虽然互联网的精神是"自由.平等.开放.分享",但是特斯拉也太大方了吧.事实上,特斯拉的这种决定除了践行互联网的伟大精神外,还有另一方面的考量,那就是定义电动汽车市场的未来的野心. 开放专利表面上看,是让竞争对手占了便宜,然而此举却无形中提高了Te

Linux下开源的DDR压力测试工具

测试可以采用 sdk 下的google开源工具 external/stressapptest 也可以采用 开源的memtester. (1)stressapptest 其是:Stressful Application Test (stressapptest) 的简称 Stressful Application Test试图让来自处理器和I/O到内存的数据尽量随机化,以创造出模拟现实的环境来测试现在的硬件设备是否稳定,Google就在使用它.其大概如下:stressapptest may be u

家政O2O两大痛点:行业线下门槛和商业模式设计

中介交易 SEO诊断 淘宝客 云主机 技术大厅 文/周袁红 ("阿姨来了"创始人) [导读]:仅靠一个技术创新,就希望给行业带来飓风,就希望把现有的一切荡涤一空,是不可能的.家政O2O没有免费的午餐!这句话有两层含义,一是说仅靠信息技术的某个创新,就能一分天下,那是低估了行业线下门槛;二是从商业模式设计上来讲,家政行业没法对用户免费.个中原由,花开两朵,各表一枝. 首先,家政是一种没有恋爱的同居关系,需要大量的前期付出.如同婚恋网需要线下见面.约会.拿结婚证入洞房一样,家政同样需要线下

Windows下开源缺陷跟踪系统mantis安装指南

1. 简介 mantis(螳螂)是一个基于php/MySQL/web的缺陷跟踪系统,最新版本是0.19.2. 要了解更多信息请到http://www.mantisbt.org/. 2. 下载 mantis0.19.2   http://www.mantisbt.org/download.php mysql5.0.2       http://dev.mysql.com/downloads/mysql/5.0.html PHP5.0.3     http://www.php.net/downloa