本书以开发PhotoSprite(一种包含Photoshop核心图像处理功能的软件)为讲解对象,深入剖析图形图像编程技术知识,取材新颖、内容丰富、循序渐进、图文并茂,是一本实用性很强的专业用书。
本书不仅介绍入门知识,还详尽介绍复杂的算法技巧。在讲述PhotoSprite图像软件的各项功能操作和实现原理的同时,还提供了典型的应用场合和贴切的效果点评。读者不仅能掌握制作精美图像效果的技巧,并精通实现这些效果的编程技术,还能开拓思路、举一反三,自行创作出更加出类拔萃的设计方案。
本书适合各类想深入掌握图形图像编程技术的开发者阅读,尽管本书采用Visual C#来讲解,但是涉及到的核心算法都是相通的。相信平面设计、图像处理、医学成像、分子化学、地理信息、卫星云图、游戏开发和影视广告等领域内的广大工程技术人员和编程爱好者都会喜欢本书的内容。
本书源代码下载地址:www.fecit.com.cn“下载专区”或www.photosprite.com。
欢迎进入计算机图形设计和图像处理的精彩世界。当今是一个热衷于用图形和图像表达信息的时代。可视化技术无时无刻不在影响着我们的工作、学习、生活、行动和思想观念。
面对街头高挂的广告牌,看到CCTV正在播放的“快乐驿站”,回味《星战》里震撼的特技场景,都给我们留下深刻印象。它们是怎么完成的?核心的技术是什么?我能够实现吗?……我们不得不求助于图形设计与图像处理的最底层的核心技术。
古语说:“授人以鱼,三餐之需;授人以渔,终生之用”。指导读者进行平面设计,并提供操作方法,这种“授人以鱼”的做法扫除不少朋友进入平面设计领域的心理阻碍,增加他们的学习信心。但要从根本上解决他们的疑惑,关键还是要“授人以渔”,教给他们“捕鱼”的方法,让他们在图形图像的海洋中搏击,去捕获一条条“大鱼”。本书内容详尽,覆盖面广,既介绍平面设计,又讲解实现原理。可谓不仅送您“鱼”,还教您“捕鱼”。
值得一提的是,本书配套软件PhotoSprite是根据Microsoft刚刚发布的Visual Studio 2005进行开发的,完全用C#语言进行编写,同时本书还提供相关网站(http://www.PhotoSprite.com)与读者交流,并为读者答疑。作为Visual Studio 2005的体验性教程,本书便于程序员自学和实践,同样也适合其他非C# 语言程序员阅读,即便没有基础的入门者,阅读本书也不会有太大困难。
C#作为一种功能强大,且易于使用的面向对象编程语言,在.NET开发平台中占有极其重要的地位,被称为.NET的正统开发语言。热衷于C#语言的人都会喜欢上Visual C# 2005,它是Visual Studio 2005的一个重要成员,带来了大量令人兴奋的新功能,例如泛型、局部类和匿名方法等。其他的新功能同样是对.NET开发宝库的重要补充。与C#的第一个版本相比,增加这些功能和语言将会提高您的整体生产效率,从而使您能够以更快的速度写出更加简洁的代码。
由于Visual Studio 2005刚刚发布,并且还在不停地升级和完善中,这方面可供参考的资料十分匮乏,加上作者水平有限,时间紧迫,所以书中难免会有疏漏和错误之处,我们真诚地欢迎读者来信指正。
本书不是连载小说,不必一页页读下去才会找到感觉,您甚至不需要按顺序进行阅读,所有的内容都被分门别类,每一个效果都相当独立,不过章节之间会彼此联系,所以在阅读时可先从感兴趣的章节开始,然后遵循实现思想,进一步读下去。
一本技术书籍的价值往往并非限于初次阅读带来的愉悦,更重要的是它能否成为日后编程过程中的左右手。本书除了是一本很好的自学读本外,还是一本非常好的参考手册,倒不是因为它面面俱到(那是Adobe或Microsoft的责任),而是因为它讲述了许多别处很难见到,但在实际项目开发中又非常重要的高级技巧。如果您想成为一名图形图像程序设计的高手,请不要错过这本书。
联骏
2006年4月于南京
本书导读
1.谁是本书的读者
本书适合于一切热衷于图像处理、医学成像、卫星云图、游戏开发和影视广告等领域内的广大专业技术人员和平面设计爱好者。
为了阅读本书,您至少应了解Windows编程方面的基本知识,掌握数字图像处理和计算机图形学方面的专业知识。同时,还需要具备数学分析、线性代数、空间解析几何和概率论等数学基础。
然而,这几方面的要求都是次要的,关键是您必须要有学习图形图像程序设计的动力和决心,这样您才有能力获得(或已经获得)这些知识和编程经验。
本书所有程序都需要您亲自动手去实践,一切从零开始。尽管书中有些算法比较复杂,然而阅读全书将是十分轻松的。第一,对于任何图像处理效果,笔者都是严格按思路进行讲解的;第二,对于图像处理的相关基础知识和算法,本书相应的地方都有必要的介绍。
笔者的出发点是:让您在一个轻松的环境下阅读本书,绝不会要求您在阅读时,旁边要放一大堆关于平面设计、数字图像处理、计算机图形学和基础数学等方面的书籍。
2.从本书获得什么
平面设计和程序开发是当前IT行业两大热点问题,它们相互依赖、共同发展。本书将用全新的观念和您一起探索这两个令人兴奋的主题,并使您有机会掌握图像处理最基本的编程技术和设计思想,有助于您成为一个专业的图形图像程序设计员。
通过对本书的学习,您将会获得以下几方面的收获。
使用和开发Photoshop其实是一件十分有趣的事情。
所有的代码都向您开放,更有在线技术支持为您排忧解难。
清楚图像处理程序设计的基本流程,一切从零开始。
平面设计和图像编程相互依赖,结合这两种技术将做得更好。
开发图形图像程序,将有助于提高挑战和竞争意识。
获得解决复杂问题的组织经验,更加重视数学和设计思想。
由于知道技术开发的核心原理而比别人更有潜力。
3.本书的特点
本书采用循序渐进的方法,遵循由概念、算法到编程实践的步骤,介绍了应用Visual Studio 2005开发图形图像软件的技术过程,力求做到既介绍基本知识又提炼编程思想。
(1)丰富的内容
全书以开发PhotoSprite为主线,既涉猎平面设计知识,又深入图像处理技术。通过经典的案例向大家介绍实用图像处理过程中最核心的编程技术。
事实上,平面设计和程序开发都在不断地向前发展。平面设计丰富了人们的视觉世界,而程序开发又为图像处理提供了方法和思路。本书将这两种技术完美地结合在一起。
全书中所有案例力求做到四点:第一,统一的编程模式;第二,突出设计思想;第三,力求代码简洁;第四,取材新颖、图文并茂。
(2)有价值的指导
写作本书就要体现出它的价值。全书融合最新的图形图像程序设计思想,力求使案例具有趣味性、普遍性、实用性和高效性。
本书提供的所有方法函数都是一次性制作而成的。读者朋友可以参考这些代码及实现它的算法,从中获得一些有益的启示。其中类、属性、方法、变量命名及其作用都很讲究,请仔细品味。
(3)丰富的解说
本书通过图文并茂的方式对案例所涉及的概念、算法和编程思想等均作了详细的解释。对于书中所示例的代码,有精确的注释和重要的解说。对于软件源代码,从变量到方法均有详尽的说明。
(4)轻松地阅读
本书将面向对象的编程技术直接应用于数字图像处理中,并按知识和功能进行细化,建立通用的图像处理函数,从而减少阅读的繁琐性,增加代码的可重用性和可移植性,提高开发效率。对于复杂的类,书中用文字的形式示出其功能。
程序的所有代码一律采用规范的编码风格。在很多地方,我们都可以对变量名见名知意。本书坚持将“无障碍阅读”放在第一位。
(5)完美的介绍
对于本书的绝大多数案例,都提供实现原理,并严格按设计思路去建立。绝不会在中途遗漏步骤,出现“犹抱琵琶半遮面”的现象,也不会草草收场,以致阻碍阅读和后继开发。
按照书中的设计思路将不仅有助于加快阅读进程,而且一定能够建立一个完整的图像处理应用程序。
(6)开放式的结构
所有新建立的多层次类结构都是有助于读者理解、修改和维护的。所有的类都是开放的,可以向其中添加新方法以支持新功能,而不会对原有功能构成任何威胁,这就是面向对象的优势。
(7)良好的交互性
本书的主要内容为图像处理程序设计,所有的类都具有很好的通用性。同时,它们都支持交互程序设计,均提供外部数据传输接口。
良好的交互性还体现在PhotoSprite的界面上:第一,PhotoSprite允许您处理自己的图像文件,而不仅仅局限于只能处理本书所提供的示例图像;第二,可以用菜单或对话框等方法选择不同的处理算法。
4.本书的结构安排
本书共分8章,取材新颖、内容丰富、循序渐进和图文并茂是本书的重要特色。
第1章为开篇语,主要对全书作总体介绍。其中包括预览PhotoSprite软件界面,了解Visual Studio 2005的新特性,明白图形图像编程方面的要点知识,以及对全书作一个指导性的说明。
第2章主要讲解怎样构筑PhotoSprite的基本框架。其中包括搭建PhotoSprite的工作界面,介绍PhotoSprite的基本操作,概述图像格式的各种优缺点和说明颜色模式的处理原理等基本内容。
第3章主要教您如何打造方便灵活的多功能工具箱。其中包括移动、选取、套索、铅笔、画刷、橡皮、直线、矩形、文本、吸管、油漆桶等工具和角度盘、画布控件。
第4章为本书核心内容的开端,主要讲解图像色彩和色调调整方面的内容。通过对本章内容的学习,读者朋友们可以方便、直观地对图像的色相、饱和度和灰度等进行调节,增加对图像处理的学习兴趣,促进对图像核心模块开发的认识和应用。
第5章为数学基础知识回顾,主要讲解如何运用基本的数学知识使图像处理产生更加迷人的效果。其中包括基本的代数运算、复杂的几何变换和深奥的逻辑运算等内容。
第6、7章将全书推向高潮,将为大家揭开Photoshop梦幻滤镜的神秘面纱,教您如何制作出神奇的艺术效果。其中包括模糊、锐化、浮雕、杂点、艺术、扭曲、风格化和其他共8组滤镜效果,对大家学习图像处理中的滤镜效果有很大帮助。
第8章为引伸篇,将为大家讲述数字图像处理在科研中的应用,同时指明其研究方向。主要就图像分割、形态学、图像滤波和边缘检测共4个部分来进行讲解。
5.特殊约定
如果您决定尝试继续阅读本书,那么首先要感谢您的信任。
笔者是一个追求风格的人,善于用简练、清晰、流畅的语言文字将复杂的技术以简单的方式表达出来。
为了帮助您阅读本书的所有代码,笔
无封面