数据库原理视频教程
❶ 如何学习数据库知识
好像武侠小说里边说的:“你的招式忘了没有?”,回答:“差不多忘了”,“忘了就好”。
这与数据库编程有什么关系?关系可大了。同志们学过Pascal、BASIC、C(C++)没有?如果没有,FOXBASE、FOXPRO应该学过吧?按以上这些语言编程,都是过程化的,说白一点就是一个数据一个数据、一条记录一条记录去处理(FOXBASE、FOXPRO不完全这样,但书上也经常是这样介绍的),当初我接触ACCESS
97时,一下子没有了IF、FOR这些语句(指数据处理),都用SQL语句,真是找不到北了,好在我学SQL语言时,也尽量忘掉这个IF、FOR,到我忘得差不多时,功夫也进了一大步,原来要编一大段程序,现在一两条SQL语句搞定,就算用多几条SQL语句,由于是在图形界面下做,可视化操作,拉拉扯扯,再修改一下生成的SQL语句,也就省事多了。
由于ACCESS具备完整的SQL语言(FOXBASE没有、FOXPRO不完整),我从ACCESS
97开始用ACCESS编程,到现在为止,DAO、ADO很少用,加上最近从爱赛思上接触的一些技术,基本上不用DAO、ADO都可以了,可以从我的“未完工的库存管理”中看出,只是在特殊情况下才偶尔用一下。(少用,但不是不用,还得学,不要误解)
如何学好数据库编程?下面介绍一下本人的一些经验,仅供参考:
1.首先要把原来一个数据一个数据、一条记录一条记录的数据处理方式忘掉,越彻底越好。
现在用成批处理了。少用记录集一条记录一条记录地处理,尽量用SQL语句。
2.学好关系数据库的理论,尤其是规范化理论,表的设计一定要规范化,最起码要规范化到第三范式。集合运算(并、交、差)。关系运算(选择、投影、连接)。其中连接与规范化是紧密结合的。
3.运用面向对象的技术:面向对象的分析OOA、面向对象的设计OOD、面向对象的编程OOP,根据表的关系,用窗体和子窗体、报表和子报表,仿真面向对象,这样可以增加程序的可读性和可维护性。(这是高级技术,同志们不要轻视,做大项目你就知道有用了)
4.用查询时,通常一步做不出来,可以分几步做,本人通常是这么做的,从我给网友回复的例子中也可以看得出。为什么要这样做?(1)有些是SQL语言的限制,没办法一步做出来,逼的;(2)可以检查每一步查询的结果,容易调试;(3)增加可读性,便于日后维护。
5.查询的结果用窗体显示或用报表打印,两者的技术差不多。通常改变打开窗体或报表的条件就可控制显示或打印的记录范围。另外用查询做数据源时,动态改变查询中的SQL语句,比在查询中引用窗体的控件要方便,因为SQL语句生成是在VBA中,可以先存放在字符变量中,然后再更新查询的SQL语句,这样就可以用断点来检查变量值对不对,如果在查询中引用窗体的控件,尤其是包含IIF()函数时,调试是很困难的。
6.开发一个系统,首先要解决技术问题,即算法,用简单例子,把算法弄懂了,再详细设计,这一点从网友的提问中可以看出,有很多人问题表达不清楚,有的人其中夹了很多与算法无关的东西,尤其是很专业的东西,别人不容易看得明白,由于算法没搞清楚,程序就无法编了。
7.不要使用过多的工具特性,使用过多的工具特性会使可读性降低,可维护性差,要别人帮忙时难以得到帮助,更要命的是可移植性差,从MDB到ADP就可以体会到了,所以在编程时可读性很重要,可移植性更重要,你甘心自己的程序就固定在一个环境下运行吗?你甘心永远用一个工具搞开发吗?为了你的“钱途”,不要玩弄太多的技巧,当然技术研究是另外一码事。
❷ 有什么嵌入式视频教程适合自学的
原文链接:网页链接
我是1999年上的大学,物理专业。在大一时,我们班里普遍弥漫着对未来的不安,不知道学习了物理后出去能做什么。你当下的经历、当下的学习,在未来的一天肯定会影响到你。毕业后我们也各自找到了自己的职业:出国深造转行做金融、留校任教做科研、设计芯片、写程序、创办公司等等,这一切都离不开在校时学到的基础技能(数学、IT、电子电路)、受过煅炼的自学能力。
所以,各位正在迷茫的在校生,各位正在尝试转行的程序员,未来一定有你的位置,是好是坏取决于你当下的努力与积累。
我不能预言几年后什么行业会热门,也不能保证你照着本文学习可以发财。我只是一个有十几年经验的程序员,给对编程有兴趣的你,提供一些建议。
1.程序员的三大方向
程序员的方向,一般可以分为3类:专业领域、业务领域、操作系统领域。你了解它们后,按兴趣选择吧。
对于专业领域,我提供不了建议。
业务,也就是应用程序,它跟操作系统并不是截然分开的:
①开发实体产品时,应用程序写得好的人,有时候需要操作系统的知识,比如调度优先级的设置、知道某些函数可能会令进程休眠。
②写应用程序的人进阶为系统工程师时,他需要从上到下都了解,这时候就需要有操作系统领域的知识了,否则,你怎么设计整个系统的方案呢?
③做应用程序的人,需要了解行业的需求,理解业务的逻辑。所以,当领导的人,多是做应用的。一旦钻入了某个行业,很难换行业。
④而操作系统领域,做好了这是通杀各行业:他只负责底层系统,在上面开发什么业务跟他没关系。这行很多是技术宅,行业专家。
⑤操作系统和业务之间并没有一个界线。有操作系统经验,再去做应用,你会对系统知根知底,碰到问题时都有解决思路。有了业务经验,你再了解一下操作系统,很快就可以组成一个团队自立门户,至少做个CTO没问题。
1.1 专业领域
它又可以分为下面2类。
1.1.1 学术研究
比如语音、图像处理、人工智能,这类工作需要你有比较强的理论知识,我倾向于认为这类人是“科学家”,他们钻研多年,很多时候是在做学术研究。
在嵌入式领域,需要把他们的成果用某种算法表达出来,针对某种芯片进行优化,这部分工作也许有专人来做。
1.1.2 工程实现
也有这样一类人,他们懂得这些专业领域的概念,但是没有深入钻研。可以使用各类开源资料实现某个目标,做出产品。比如图像处理,他懂得用opencv里几百个复杂函数来实现头像识别。有时候还可以根据具体芯片来优化这些函数。
“专业领域”不是我的菜,如果你要做这一块,我想最好的入门方法是在学校学习研究生、博士课程。
1.2 业务领域
换句话说,就是应用程序,这又可以分为下面2类。
1.2.1 界面显示
做产品当然需要好的界面,但是,不是说它不重要,是没什么发展后劲。
现在的热门词是Android APP和IOS APP开发。你不要被Android、IOS两个词骗了,它们跟以前的VC、VB是同一路货色,只是、仅仅是一套GUI控件的实现。
希望没有冒犯到你,我有理由。
一个程序需要有GUI界面,但是程序的内在逻辑才是核心。Android、IOS的开发工具给我们简化了GUI的开发,并提供了这些控件的交互机制,封装并提供了一些服务(比如网络传输)。但是程序内部的业务逻辑、对视频图像声音的处理等等,这才是核心。另外别忘了服务器那边的后台程序:怎样更安全地保存数据、保护客户的隐私,怎样处理成千上万上百万的并发访问,等等,这也是核心。
但是,从Android、IOS APP入门入行,这很快!如果你是大四,急于找到一份工作,那么花上1、2个月去学习Android或IOS,应该容易找到工作,毕竟APP的需求永远是最大的,现在这两门技术还算热门。在2011、2012年左右,Android程序员的起薪挺高,然后开始下滑。Android APP的入门基本只要1个月,所以懂的人也越来越多。2013、2014年,IOS开发的工资明显比Android高了,于是各类IOS培训也火曝起来。中华大地向来不缺速成人才,估计再过一阵子IOS工程师也是白菜价了。
会Android、IOS只是基本要求,不信去51job搜搜Android或IOS,职位要求里肯定其他要求。
1.2.2 业务逻辑
举个简单例子,做一个打卡软件,你需要考虑这些东西:
①正常流程是上班下班时都要打卡
②有人忘记了怎么办?作为异常记录在案,推送给管理员
③请假时怎么处理?
④加班怎么处理?
对于更复杂的例子,视频会议系统里,各个模块怎么对接,各类协议怎么兼容,你不深入这个行业,你根本搞不清楚。
应用开发的职位永远是最多的,入门门槛也低。基本上只要你会C语言,面试时表现比较得体,一般公司都会给你机会。因为:
①你进公司后,还需要重新培训你:熟悉它们的业务逻辑。
②你要做的,基本也就是一个个模块,框架都有人给你定好了,你去填代码就可以了。
说点让你高兴的事:软件公司里,做领导的基本都是写应用程序的(当然还有做市场的)。写应用程序的人,对外可以研究市场接待客户,对内可以管理程序员完成开发,不让他做领导让谁做?
如果你的志向是写应用程序,那么我建议你先练好基本功:数据结构、算法是必备,然后凭兴趣选择数据库、网络编程等等进行深入钻研。
最后,选择你看好的、感兴趣的行业深耕个10年吧。做应用开发的人选择了某个行业,后面是很难换行业的,选行很重要!
1.3 操作系统领域
UCOS太简单,VxWorks太贵太专业,Windows不玩嵌入式了,IOS不开源,所以对于操作系统领域我们也只能玩linux了。
在嵌入式领域Linux一家独大!
Android呢?Android跟QT一样,都是一套GUI系统。只是Google的实力太强了,现在Android无处不在,所以很多时候Linux+Android成了标配。注意,在这里我们关心的是Android的整个系统、里面的机制,而不是学习几个API然后开发界面程序。操作系统领域所包含的内容,简单地说,就是制作出一台装好系统的专用“电脑”,可以分为:
①为产品规划硬件:
按需求、性能、成本选择主芯片,搭配周边外设,交由硬件开发人员设计。
②给单板制作、安装操作系统、编写驱动
③定制维护、升级等系统方案
④还可能要配置、安装Android等GUI系统:
⑤为应用开发人员配置开发环境
⑥从系统角度解决疑难问题
这个领域,通常被称为“底层系统”或是“驱动开发”。
先解决2个常见误区:
①这份工作是写驱动程序吗?
看看上面罗列的6点,应该说,它包含驱动开发,但远远不只有驱动开发。
②我们还需要写驱动吗?不是有原厂吗?或者只需要改改就可以?
经常有人说,芯片原厂都做好驱动了,拿过来改改就可以了。如果,你的硬件跟原厂的公板完全一样,原厂源码毫无BUG,不想优化性能、削减成本,不想做一些有特色的产品,那这话是正确的。
但是在这个不创新就是找死的年代,可能吗?!原因有二:
①即使只是修改代码,能修改的前提是能理解;能理解的最好煅炼方法是从零写出若干驱动程序。
②很多时候,需要你深度定制系统。
以前做联发科手机只需要改改界面就可以出货了,现在山寨厂一批批倒下。大家都使用原厂的方案而不加修改时,最后只能拼成本。
举个例子,深圳有2家做交通摄像头、监控摄像头的厂家,他们曾经找我做过4个项目:
①改进厂家给的SD卡驱动性能,使用DMA。
②换了Flash型号后,系统经常出问题,需要修改驱动BUG。
③触摸屏点击不准,找原因,后来发现是旁路电容导致的。
④裁减成本,把4片DDR换为2片DDR,需要改bootloader对DDR的初始化。
这些项目都很急,搞不定就无法出货,这时候找原厂?除非你是中兴华为等大客户,否则谁理你?
我在中兴公司上班时,写驱动的时间其实是很少的,大部分时间是调试:系统调优,上帮APP工程师、下帮硬件工程师查找问题。我们从厂家、网上得到的源码,很多都是标准的,当然可以直接用。但是在你的产品上也许优化一下更好。比如我们可以把摄像头驱动和DMA驱动揉合起来,让摄像头的数据直接通过DMA发到DSP去。我们可以在软件和硬件之间起桥梁作用,对于实体产品,有可能是软件出问题也可能是硬件出问题,一般是底层系统工程师比较容易找出问题。
当硬件、软件应用出现问题,他们解决不了时,从底层软件角度给他们出主意,给他们提供工具。再比如方案选择:芯片性能能否达标、可用的BSP是否完善等等,这只能由负责整个方案的人来考虑,他必须懂底层。
在操作系统领域,对知识的要求很多:
①懂硬件知识才能看懂电路图
②英文好会看芯片手册
③有编写、移植驱动程序的能力
④对操作系统本身有一定的理解,才能解决各类疑难问题
⑤理解Android内部机制
⑥懂汇编、C语言、C++、java
它绝对是一个大坑,没有兴趣、没有毅力的人慎选。
①这行的入门,绝对需要半年以上,即使全天学习也要半年。
②它的职位,绝对比APP的职位少
③并且你没有1、2年经验,招你到公司后一开始你做的还是APP。
优点就是:
①学好后,行业通杀,想换行就换行;想自己做产品就自己做产品。
②相比做应用程序的人,不会被经常变动的需求搞得天天加班。
③门槛高,当然薪水相对就高。
操作系统领域,我认为适合于这些人:
①硬件工程师想转软件工程师,从底层软件入门会比较好
②单片机工程师,想升级一下。会Linux底层的人肯定会单片机,会单片机的人不一定会Linux。
③时间充足的学生:如果你正读大二大三,那么花上半年学习嵌入式Linux底层多有益处。
④想掌握整个系统的人,比如你正在公司里写APP,但是想升为系统工程师,那么底层不得不学。
⑤想自己创业做实体产品的工程师,你有钱的话什么技术都不用学,但是如果没钱又想做产品,那么Linux底层不得不学。
⑥做Linux APP的人,没错,他们也要学习。
这部分人不需要深入,了解个大概就可以:bootloader是用来启动内核,Linux的文件系统(第1个程序是什么、做什么、各目录干嘛用)、APP跟驱动程序的调用关系、工具链,有这些概念就可以了
本文中,就把操作系统默认为Linux,讲讲怎么学习嵌入式Linux+Android系统。
1.4 嵌入式Linux+Android系统包含哪些内容
嵌入式Linux系统包含哪些东西?不要急,举一个例子你就知道了。
①电脑一开机,那些界面是谁显示的?
是BIOS,它做什么?一些自检,然后从硬盘上读入windows,并启动它。
类似的,这个BIOS对应于嵌入式Linux里的bootloader。这个bootloader要去Flash上读入Linux内核,并启动它。
②启动windows的目的是什么?
当然运行应用程序以便上网、聊天什么的了。
这些上网程序、聊天程序在哪?
在C盘、D盘上。
所以,windows要先识别出C盘、D盘。在Linux下我们称之为根文件系统。
③windows能识别出C盘、D盘,那么肯定有读写硬盘的能力。
这个能力我们称之为驱动程序。当然不仅仅是操作硬盘,还有网卡、USB等等其他硬件。嵌入式Linux能从Flash上读出并执行应用程序,肯定也得有Flash的驱动程序啊,当然也不仅仅是Flash。
简单地说,嵌入式LINUX系统里含有bootloader、内核、驱动程序、根文件系统、应用程序这5大块。而应用程序,我们又可以分为:C/C++、Android。
所以,嵌入式Linux+Android系统包含以下6部分内容:
①bootloader
②Linux内核
③驱动程序
④使用C/C++编写的应用程序
⑤Android系统本身
⑥Android应用程序
Android跟Linux的联系实在太大了,它的应用是如此广泛,学习了Linux之后没有理由停下来不学习Android。在大多数智能设备中,运行的是Linux操作系统;它上面要么安装有Android,要么可以跟Android手机互联。现在,Linux+Android已成标配。
2. 怎么学习嵌入式Linux操作系统
本文假设您是零基础,以实用为主,用最快的时间让你入门;后面也会附上想深入学习时可以参考的资料。
在实际工作中,我们从事的是“操作系统”周边的开发,并不会太深入学习、修改操作系统本身。
①操作系统具有进程管理、存储管理、文件管理和设备管理等功能,这些核心功能非常稳定可靠,基本上不需要我们修改代码。我们只需要针对自己的硬件完善驱动程序
②学习驱动时必定会涉及其他知识,比如存储管理、进程调度。当你深入理解了驱动程序后,也会加深对操作系统其他部分的理解
③Linux内核中大部分代码都是设备驱动程序,可以认为Linux内核由各类驱动构成
但是,要成为该领域的高手,一定要深入理解Linux操作系统本身,要去研读它的源代码。
在忙完工作,闲暇之余,可以看看这些书:
①赵炯的《linux内核完全注释》,这本比较薄,推荐这本。他后来又出了《Linux 内核完全剖析》,太厚了,搞不好看了后面就忘记前面了。
②毛德操、胡希明的《LINUX核心源代码情景分析》,此书分上下册,巨厚无比。当作字典看即可:想深入理解某方面的知识,就去看某章节。
③其他好书还有很多,我没怎么看,没有更多建议
基于快速入门,上手工作的目的,您先不用看上面的书,先按本文学习。
2.1 入门路线图
假设您是零基础,我们规划了如下入门路线图。前面的知识,是后面知识的基础,建议按顺序学习。每一部分,不一定需要学得很深入透彻,下面分章节描述。
2.2 学习驱动程序之前的基础知识
2.2.1 C语言
只要是理工科专业的,似乎都会教C语言。我见过很多C语言考试90、100分的,一上机就傻了,我怀疑他们都没在电脑上写过程序。
理论再好,没有实践不能干活的话,公司招你去干嘛?
反过来,实践出真知,学习C语言,必须练练练、写写写!
当你掌握基本语法后,就可以在电脑上练习一些C语言习题了;
当你写过几个C程序后,就可以进入下一阶段的裸机开发了。
①不需要太深入
作为快速入门,只要你会编写“Hello, world!”,会写冒泡排序,会一些基础的语法操作,暂时就够了。
指针操作是重点,多练习;
不需要去学习过多的数据结构知识,只需要掌握链表操作,其他不用学习,比如:队列、二叉树等等都不用学;不需要去学习任何的函数使用,比如文件操作、多线程编程、网络编程等等;这些知识,在编写Linux应用程序时会用,但是在操作系统特别是驱动学习时,用不着!
永往直前吧,以后碰到不懂的C语言问题,我们再回过头来学习。
在后续的“裸机开发”中,会让你继续练习C语言,那会更实战化。
C语言是在写代码中精进的。
②可以在Visual Studio下学习,也可以在Linux下学习,后者需要掌握一些编译命令,我们暂时没有提供C语言的教程,找一本C语言书,网上找找免费的C语言视频(主要看怎么搭建环境),就可以自学了。
2.2.2 PC Linux基本操作:
对于PC Linux,我们推荐使用Ubuntu,在它上面安装软件非常简便。
我们的工作模式通常是这样:在Windows下阅读、编写代码,然后把代码上传到PC Linux去编译。实际上,Ubuntu的桌面系统已经很好用了,我们拿到各种智能机可以很快上手,相信Ubuntu的桌面系统也可以让你很快上手。为了提高工作效率,我们通常使用命令行来操作Ubuntu。
不用担心,你前期只需要掌握这几条命令就可以了,它们是如此简单,我干脆列出它们:
①cd : Change Directory(改变目录)
cd 目录名 // 进入某个目录cd .. // cd “两个点”:返回上一级目录cd - // cd “短横”:返回上一次所在目录
②pwd : Print Work Directory(打印当前目录 显示出当前工作目录的绝对路径)
③mkdir : Make Directory(创建目录)
mkdir abc // 创建文件夹abc
mkdir -p a/b/c // 创建文件夹a,再a下创建文件夹b,再在b下创建文件夹c
④rm : Remove(删除目录或文件)
rm file // 删除名为file的文件
rm -rf dir // 删除名为dir的目录
⑤ls : List(列出目录内容)
⑥mount : 挂载
mount -t nfs -o nolock,vers=2 192.168.1.123:/work/nfs_root /mnt
mount -t yaffs /dev/mtdblock3 /mnt
⑦chown : Change owner(改变文件的属主,即拥有者)
chown book:book /work -R //对/work目录及其下所有内容,属主改为book用户,组改为book
⑧chmod : Change mode(改变权限),下面的例子很简单粗暴
chmod 777 /work -R // 对/work目录及其下所有内容,权限改为可读、可写、可执行
⑨vi : Linux下最常用的编辑命令,使用稍微复杂,请自己搜索用法。
要练习这些命令,你可以进入Ubuntu桌面系统后,打开终端输入那些命令;或是用SecureCRT、putty等工具远程登录Ubuntu后练习。
2.2.3 硬件知识
我们学习硬件知识的目的在于能看懂原理图,看懂通信协议,看懂芯片手册;不求能设计原理图,更不求能设计电路板。
对于正统的方法,你应该这样学习:
①学习《微机原理》,理解一个计算机的组成及各个部件的交互原理。
②学习《数字电路》,理解各种门电路的原理及使用,还可以掌握一些逻辑运算(与、或等)。
③《模拟电路》?好吧,这个不用学,至少我在工作中基本用不到它,现在全忘光了。
就我个人经验来说,这些课程是有用的,但是:
①原理有用,实战性不强。
比如《微机原理》是基于x86系统,跟ARM板子有很大差别,当然原理相通。
我是在接触嵌入式编程后,才理解了这些课程。
②每本书都那么厚,内容都很多,学习时间过长,自学有难度。
针对这些校园教材的不足,并结合实际开发过程中要用到的知识点,我们推出了《学前班_怎么看原理图》的系列视频:
学前班第1课第1节___怎么看原理图之GPIO和门电路.wmv
学前班第1课第2.1节_怎么看原理图之协议类接口之UART.wmv
学前班第1课第2.2节_怎么看原理图之协议类接口之I2C.wmv
学前班第1课第2.3节_怎么看原理图之协议类接口之SPI.wmv
学前班第1课第2.4节_怎么看原理图之协议类接口之NAND Flash.wmv
学前班第1课第2.5节_怎么看原理图之协议类接口之LCD.wmv
学前班第1课第3节___怎么看原理图之内存类接口.wmv
学前班第1课第4.1节_怎么看原理图之分析S3C2410开发板.wmv
学前班第1课第4.2节_怎么看原理图之分析S3C2440开发板.wmv
学前班第1课第4.3节_怎么看原理图之分析S3C6410开发板.wmv
即使你只具备初中物理课的电路知识,我也希望能通过这些视频,让你可以看懂原理图,理解一些常见的通信协议;如果你想掌握更多的硬件知识,这些视频也可以起个索引作用,让你知道缺乏什么知识。
这些视频所讲到的硬件知识,将在《裸板开发》系列视频中用到,到时可以相互对照着看,加深理解。
2.2.4 要不要专门学习Windows下的单片机开发
很多学校都开通了单片机的课程,很多人都是从51单片机、AVR单片机,现在比较新的STM32单片机开始接触嵌入式领域,并且使用Windows下的开发软件,比如keil、MDK等。
问题来了,要不要专门学习Windows下的单片机开发?
①如果这是你们专业的必修课,那就学吧
②如果你的专业跟单片机密切相关,比如机械控制等,那就学吧
③如果你只是想从单片机入门,然后学习更广阔的嵌入式Linux,那么放弃在Windows下学习单片机吧!
理由如下:
①Windows下的单片机学习,深度不够
Windows下有很好的图形界面单片机开发软件,比如keil、MDK等。
它们封装了很多技术细节,比如:
你只会从main函数开始编写代码,却不知道上电后第1条代码是怎么执行的;
你可以编写中断处理函数,但是却不知道它是怎么被调用的;
你不知道程序怎么从Flash上被读入内存;
也不知道内存是怎么划分使用的,不知道栈在哪、堆在哪;
当你想裁剪程序降低对Flash、内存的使用时,你无从下手;
当你新建一个文件时,它被自动加入到工程里,但是其中的机理你完全不懂;
等等等。
②基于ARM+Linux裸机学习,可以学得更深,并且更贴合后续的Linux学习。实际上它就是Linux下的单片机学习,只是一切更加原始:所有的代码需要你自己来编写;哪些文件加入工程,需要你自己来管理。
在工作中,我们当然倾向于使用Windows下更便利的工具,但是在学习阶段,我们更想学习到程序的本质。
一切从零编写代码、管理代码,可以让我们学习到更多知识:
你需要了解芯片的上电启动过程,知道第1条代码如何运行;
你需要掌握怎么把程序从Flash上读入内存;
需要理解内存怎么规划使用,比如栈在哪,堆在哪;
需要理解代码重定位;
需要知道中断发生后,软硬件怎么保护现场、跳到中断入口、调用中断程序、恢复现场;
你会知道,main函数不是我们编写的第1个函数;
你会知道,芯片从上电开始,程序是怎么被搬运执行的;
你会知道,函数调用过程中,参数是如何传递的;
你会知道,中断发生时,每一个寄存器的值都要小心对待;
等等等。
你掌握了ARM+Linux的裸机开发,再回去看Windows下的单片机开发,会惊呼:怎么那么简单!并且你会完全明白这些工具没有向你展示的技术细节。
驱动程序=Linux驱动程序软件框架+ARM开发板硬件操作,我们可以从简单的裸机开发入手,先掌握硬件操作,并且还可以:
①掌握如何在PC Linux下编译程序、把程序烧录到板子上并运行它
②为学习bootloader打基础:掌握了各种硬件操作后,后面一组合就是一个bootloader
2.2.5 为什么选择ARM9 S3C2440开发板,而不是其他性能更好的?
有一个错误的概念:S3C2440过时了、ARM9过时了。
这是不对的,如果你是软件工程师,无论是ARM9、ARM11、A8还是A9,对我们来说是没有差别的。
一款芯片,上面有CPU,还有众多的片上设备(比如UART、USB、LCD控制器)。我们写程序时,并不涉及CPU,只是去操作那些片上设备。
所以:差别在于片上设备,不在于CPU核;差别在于寄存器操作不一样。
因为我们写驱动并不涉及CPU的核心,只是操作CPU之外的设备,只是读写这些设备的寄存器。
之所以推荐S3C2440,是因为它的Linux学习资料最丰富,并有配套的第1、2期视频。
2.2.6 怎么学习ARM+Linux的裸机开发
学习裸机开发的目的有两个:
①掌握裸机程序的结构,为后续的u-boot作准备
②练习硬件知识,即:怎么看原理图、芯片手册,怎么写代码来操作硬件
后面的u-boot可以认为是裸机程序的集合,我们在裸机开发中逐个掌握各个部件,再集合起来就可以得到一个u-boot了。
后续的驱动开发,也涉及硬件操作,你可以在裸机开发中学习硬件知识。
注意:如果你并不关心裸机的程序结构,不关心bootloader的实现,这部分是可以先略过的。在后面的驱动视频中,我们也会重新讲解所涉及的硬件知识。
推荐两本书:杜春蕾的《ARM体系结构与编程》,韦东山的《嵌入式Linux应用开发完全手册》。后者也许是国内第1本涉及在PC Linux环境下开发的ARM裸机程序的书,如果我说错了,请原谅我书读得少。
对于裸机开发,我们提供有2部分视频:
①环境搭建
第0课第1节_刚接触开发板之接口接线.wmv
第0课第2节_刚接触开发板之烧写裸板程序.wmv
第0课第3节_刚接触开发板之重烧整个系统.wmv
第0课第4节_刚接触开发板之使用vmwae和预先做好的ubuntu.wmv
第0课第5节_刚接触开发板之u-boot打补丁编译使用及建sourceinsight工程.wmv
第0课第6节_刚接触开发板之内核u-boot打补丁编译使用及建sourceinsight工程.wmv
第0课第7节_刚接触开发板之制作根文件系统及初试驱动.wmv
第0课第8节_在TQ2440,MINI2440上搭建视频所用系统.wmv
第0课第9节_win7下不能使用dnw烧写的替代方法.wmv
.................
原文链接:网页链接
❸ 求数据库原理及应用视频教程
上海交通大学数据库系统及应用
全27讲
链接:https://pan..com/s/155pxn4yyteJ70egCyq8zZg
提取码:5r1g
上海交通大学数据库系统及应用 全27讲网络网盘
❹ 谁的Java教学视频比较好
很多想学JAVA的小伙伴的一个问题就是我该如何入门?是啊,面对这样的问题我们该如何去做呢,这是摆在很多小伙伴面前的问题。我根据自己多年的编程经验为大家分享自己的看法。
1.看到过好多个这样的提问,其实我一般真的不那么容易分享自己的这点心得的,这是第一次回答这样的“推荐书籍”方面的问题。
我买编程方面的书籍,有一个非常清晰、坚决的原则——电子工业出版社的!
对于JAVA,建议你看如下的书:
首先,《21天学通JAVA》;
然后,《30天学通JAVA项目案例开发》(这本书的内容都是实例的,非常棒的实例!适合初学者的同时,又有实际应用性!)
以上的书籍,是基于你只想学J2SE的。
我还建议你主要攻J2EE方面的知识(在中国,J2SE要高手才能找到工作,而J2SE,只是菜鸟都很可能找到工作),至于J2EE方面的书籍:
首先,《21天学通JAVAWEB开发》
然后,《30天学通JAVAWEB项目开发》
以上都是本人确切的经验来的,绝对没有介绍错
2.我联合互联网上的一群大牛,组建了一个编程的免费学习群,你只需要来我们这个群里听就行,开头的的第一部分是:四二六.,位于中间的第二部分是:396,处于最后一部分的是:284。 这里有免费的学习资源,每天直播课程,不需要你付出什么,只需要有一颗学习的心就可以了。 不是想要学习的就不要加了。
3、动手去写去练
当然只看是很难学会的。我们需要搭建IDE环境来多练习才能完全掌握这些语法。编程学习没有捷径可走,只有入门快慢之分。要学会编程只有coding、coding最后还是coding。
送给那些懦弱的人们
A : 我是护士,我的专业就是护理。我做不了excel、做不了ppt、我学不会ps,好难,我不会写文章。
我: 我学习那么好,写字那么漂亮,编程也不错,ps也挺好、我还能打篮球、我会兵乓求、我会羽毛球、我会足球、我会设计、我会英文。(有的都是高二退学之后自己加强学习的,读书只给了我 算数、识字这些基本的的能力),我特么是神吗?
A : 人人都跟你一样?不是谁都能用很短的时间学很多的东西。
我 :我大概是神吧!你能少看一点 《爸爸去哪儿》、《额滴歌神啊》、《奔跑吧兄弟》吗,今天出了《爸爸去哪》,明天来个《女儿去哪》、《爷爷去哪儿》,你看得完?你能不能看点有用的东西?例如有点启发、让人学到东西的影片或者书?
A:委屈的瘪瘪嘴,那好,我要学习,给我买一本书吧,推荐一下。
我:书到了,学习 吧,一个月后我要看你的成绩。我来考考你
A:好难啊,我好困,我要看一会儿电视.....(然而没然后了....)
其实,这位A同学,极度的懦弱,并不是她不上进,只是那么的懦弱,那么的沉迷于垃圾节目、垃圾书籍,喜欢看不伦不类,不三不四的东西。不明白自己应该要什么,自己怎么做才能得到,认为自己的能力那么的差,做不到
B:大神,我要学node了,推荐一下node的书籍呗
我:恩,入门看一下《node于express开发》吧,然后看看node官网。还有一些博客什么的。当然了,你完全按照那本书,也能做出一些的东西了。最重要的是,要自己动手,去做东西,然后发现问题,解决问题。提升自己。
B:大神,除了那本书,还有别的书吗?
我:书很多,但书不在于多,而是,你能否理解了,并且能运用了?你看完了吗?
B:我感觉很难做,node好难。
我:做做项目,搜搜Google、看看github。
而今,我不知道这位同学水平到底到了什么水平,我想,应该不会太好,最终原因,我想是因为没有深入的去折腾,没有去写代码,没去发现自己的问题
其实,我们的潜力很大,我们能学的更好。我们能掌握的更多,但是许多人都做不到坚持、做不到深入。不肯思考,不肯的动手,是阻碍我们进步的最大原因。
后记:
人,应该要明确自己的目标,拥有理想。
人,重要的不是你站在哪里,而是你往哪个方向前进。
无论何时,不管你已经得到了多少,拥有了多少。都不是堕落的理由。
对于不肯上进,没意志力的人来说,等于是,你想死,任何人都救不了你!
感谢自己,感谢自己没有继续读大学。感谢自己在读书时代已经养成了独立思考,喜欢折腾的习惯。
❺ Java的自学过程中怎么能有个清晰的学习路线
1、自学Java知识学习步骤:
①java基础(基础语法)
②java面向对象
③数组、集合、常用类
④IO流
⑤多线路SOCKET编程
⑥数据库、网络传输、数据解析。
2、根据上面六项串起来做实例,
3、优化代码:编写代码规范,通用逻辑或处理共同话,性能优化等等
4、改善代码和功能完善等等。
上面的基础学会了,开始试着开发项目,或都看别人已经开发好的项目自己拿来练习,巩固知识点。
进公司能上手,对技术也扎实,工资绝对比你期望的要高!
自学的话时间比较长,但是一定不要太过多依赖于视频,视频的目的是理解里面的技术。
Java程序员基本上都是高薪待遇的,
而通过Java培训课程的学习,是相对而言比较便捷的成为Java程序员的方法,
通过Java培训班四个半月的课程学习,掌握Java编程技术,
将所学与项目结合,迈出程序员职业道路的第一步,随着工作经验的积累,薪资只会增长。
❻ 适合初学者的Java教程
很多的培训机构都会录制比较完整的入门级视频教程提供下载的,单是想要入门的话下载看这些就够了兄弟连Java战狼班,如果要深入的学习可以参考他们列出来的教学提纲去网络搜索
兄弟连JavaEE战狼班:
第一阶段:Java语言基础
★ Java语言基础
1、面向对象思维JAVASE
2、(类加载机制与反射,annotation,泛型,网络编程,多线程,IO,异常处理,常用API,面向对象,JAVA编程基础)
3、Java8新特性
第二阶段:数据库
★ 数据库
1、Oracle(SQL语句、SQL语句原理、SQL语句优化、表、视图
2、序列、索引、Oracle数据字典、Oracle 数据库PL/SQL开发
3、数据库设计原则、 MySQL 、 JDBC
第三阶段:Web基础
★ Web基础
1、HTML5(H5)基本文档结构、链接、列表、表格、表单;
2、CSS 基础语法、盒子模型、浮动布局、定位;
3、JavaScript语言基础、DOM 编程、事件模型等),JQuery,AJAX框架,XML,BootStrap组件
第四阶段:Java Web技术和主流框架
★ Java Web技术和主流框架
1、JSP&Servlet、struts2,hibernate4,spring4,JPA,maven
2、SpringData,SpringMVC,MyBatis,SpringSecurity,shiro,Nginx
第五阶段:Linux
★ Linux
1、Linux安装、熟悉Linux的基础命令、vi编辑器的使用、awk和sed命令使用、用户和组
2、文件及目录权限管理、使用ACL进行高级访问控制、网络配置和软件包安装、启动流程和服务管理
3、系统监控和日志管理、进程管理和计划任务、ssh远程登录、shell基础和shell脚本。
第六阶段:大数据技术(Hadoop和Spark)
★ 大数据技术(Hadoop和Spark)
1、Hadoop (Hadoop基础和环境搭建,HDFS体系结构,MapRece;Hadoop的集群模式、HDFS联盟,利用ZooKeeper来实现Hadoop集群的HA(高可用性)功能
2、Yarn的任务调度机制,Apache Hive,Pig数据处理,集成Hadoop和Sqoop
3、Flume以及Apache Kafka来实现数据的交换,安装部署HBase,Storm)
4、Scala 语言(Scala环境搭建、Scala基础语法、模式匹配、重载与构造器、Map与rece、元组、继承、StringContext,Option Some None,Tuple;集合方法和运算,future 对象同步处理和异步处理返回结果)
5、Spark(Spark搭建,Spark-shell 的使用,Spark-submit 提交应用, Spark的内核设计和实现,并对内核中的实现架构、运行原理进行详细的讲解;Spark生态体系中的各个组件,包括:Spark Core,Shark,Spark SQL和Spark Streaming等等)
第七阶段:项目
★ 项目
1、China-UCSP 项目 SSM(Spring+SpringMVC+MyBatis)
2、用户关系管理系统 S2SH+Maven+Nodejs+MySQL技术实战开发
3、电子商务交易平台 S2SH+Maven+Shiro+Oracle
❼ 平面设计教案
主要内容:Photoshop 菜单的的 View、Windows、Help菜单;Photoshop的工具栏的部分内容,一些操作技巧。
教学时间:3小时
教学要求:对Photoshop 的菜单有全面的了解,知道 View、Windows、Help 三个菜单中的每一个选项的含义,对比较重要的的标尺、导向线、网格等能做到熟练使用。学会使用工具栏中的大部分工具,来对图片进行需要的调整,如选择、填色、部分修改调整等,为熟练地进行各种应用打下基础。
第一节:View菜单
1.New View:新开启一个视图,和原来操作的那一个一模一样。
2.Proof setup:验证设置。
3.Proof Colors: 验证色彩。相当于过去的CMYK Preview(CMYK模式的预视)这个命令是在不改变模式的情况下,将显示方式按CMYK等其它色彩模式预视。
4.Gamut Warning快捷键:Shift+Ctrl+Y:色域警告,这个命令将把图像中CMYK模式所不能表达的颜色,作警告色表示,这个命令并不改变图形中的真实数据,只是显示中改变了。关于警告色的选择与设置,我们在第一次课时已经给大家介绍了。
5.Zoom in快捷键:Ctrl++:放大视图
6.Zoom out快捷键:Ctrl+-:缩小视图
7.Fit on Screen快捷键:Ctrl+0:在不与其它任何图标重叠的情况下,将图像尽可能的显示得大一些(满屏),我们常用这个快捷键来使图象恢复到适合的显示大小。
8.Actual Pixels快捷键:Alt+Ctrl+0:按真实大小显示,也就是图像的真实尺寸,即图像中的每一像素,对应屏幕的每一像素。
9.Print Size:打印尺寸显示,就是你选定的用厘米等单位表示的尺寸,但这不准确。
10.Hide(Show) Extra:快捷键:Ctrl+H:隐藏(显示)选择边界,选中隐藏时,选择的蚂蚁线消失,但这时只是看不见蚂蚁线而已,选择其实仍然存在。
11.Hide(show):下面还有许多选项,如图:
意为隐藏和显示选择一些东西,有如下:
Selection Edges: 隐藏和显示选择边
Target Path:快捷键:Shift+Ctrl+H:隐藏(显示)路径
Grid 快捷键:Ctrl+’:隐藏(显示)网格
Guides快捷键:Ctrl+;:隐藏(显示)辅助线
还有其它的一些选项,包括全部显示和全部隐藏等。
12. Hide(Show) Rulers:隐藏(显示)标尺
13.Snap :吸引捕捉。
14.Snap to :吸引和捕捉到
下面有一些选项,包括:
Guides :快捷键:Shift+Ctrl+;:对齐辅助线,也称辅助线自动捕捉,这时辅助线象有磁力一样,会吸住你正在操作的对象。
Grid :快捷键:Shift+Ctrl+”:对齐网格,也称网格自动捕捉,这时网格会象有吸引力一样,吸住附近你正在操作的对象
Slices:捕捉到切片
还有别的,就不一一介绍了。
15.Lock Guides快捷键:Alt+Ctrl+;:锁定辅助线
16.Clear Guides:清除辅助线
17.New Guides: 建立新的辅助线
18.Lock Slice: 锁定切片
19.Clear Slice:清除切片
第二节 Windows菜单
1.Cascade:重新排列文件窗口。将屏幕上所有打开的文件按顺序整齐排列。
2.Tile:在不与其它内容重叠的情况下尽量将窗口(即文件的框)满屏。
3.Arrange Icons:排列图标
4.Close all:关闭所有的视窗(所有的打开文件)
5. Hide(Show) tools:隐藏(显示)工具栏
6. Hide(Show) Options:隐藏(显示)不同工具的状态栏
7. Hide(Show) Navigator:隐藏(显示)缩放调色板
8. Hide(Show) Info:隐藏(显示)信息调色板
9. Hide(Show) Color:隐藏(显示)颜色调色板
10. Hide(Show) Swatches:隐藏(显示)色样调色板
11. Hide(Show) styles:隐藏(显示)效果调色板
12.Hide(Show) history:隐藏(显示)历史调色板
13. Hide(Show) Actions:隐藏(显示)程序调色板
14. Hide(Show) Layers:隐藏(显示)层调色板
15.Hide(Show) Channels:隐藏(显示)通道调色板
16. Hide(Show) Paths:隐藏(显示)路径调色板
17.Hide(Show) Character: 隐藏(显示)文字属性栏
18.Hide(Show) paragraph:隐藏(显示)文字段落属性栏
16. Hide(Show) StatasBar :隐藏(显示)信息条
17.这一栏是所操作的文件的信息。只有在有文件被操作时,这一栏才出现。
第三节 Help帮助菜单
1.Contents F1:帮助,非常详尽,可惜是E文的。
2.About Photoshop:Photoshop的版权说明
3.About Plug-in:关于外挂模块的版权说明,在Photoshop中使用了一些不是由Photoshop自己开发出来的技术模块,这一项是用来说明专利所有者的。
4.Top Issues:认证
5.Downloadables:下载
6. Adobe Corporate News:合作
7. Register: 注册。
8.Adobe Online:访问Photoshop在网络中的主页,当然前提是你得上网。
9.Export Transparent Image: 输出透明的图像
10.Resize Image:重置图像尺寸
第四节 工具栏工具详解(上)
工具栏是photoshop中最常用到的部分,工具具有易用性和直观性,都是在图像中按下鼠标直接作用的,就象我们手中的笔、像皮一样,当然,功能更为齐全,更为强大。这些工具有些是单一工具栏,有的后面还隐藏有工具,所以总的工具数量惊人,一共有50个。要用后面的工具有两种方式,一种是按住不放,略等以后,隐藏的工具将出现,或是按住Alt用鼠标进行选择,每按动一次工具变一次。在几乎所有工具中,只要按住空格不放,工具就会变成一只手,用来移动视图(不改变任何信息),方便我们的观看。另外,几乎所有时候,你按下Ctrl不放,都会变成移动方式。
在讲以下内容之前,我有必要先讲一下前景色与背景色的概念。
概念
前景色:是指目前我们在一般情况下(没有其它选择的情况下),系统的默认颜色,是我们用色类工具时,将用于填充的颜色。这个颜色被显示在工具栏中,处于左上方。
背景色:是系统的第二默认色,在一些擦除工具中,图像信息会被擦成这种颜色。
在初始情况下,前景色为黑色,背景色为白色,就象白纸和黑字。快捷键按D回到初始默认状态,按X可以使前景色与背景色转换。在颜色显示块上单击鼠标,会出现ColorPriker,在中间你可以选择需要的颜色。另外,在一些画笔工具中,按下Alt,吸管也会出现,这很重要,因为你可以随时吸取图中的颜色,使我们提高效率。
几乎每一个工具都有它相应的options,就是属性栏,位于菜单的下方,用来设置有关这个工具的一些参数,使工具符合你使用的要求。这个属性栏如果已经打开,会随着你选择工具的变化而相应变化,与正选中的工具相响应,但如果option属性栏这时没有打开,你双击该工具也会出现相应的options属性栏。
另外,点击属性栏中的那个工具图标,都会出现以下两项:
Reset tool:将该工具的设置回复到系统默认值(初始)
Reset all tools :将所有工具的设置都回到系统默认值(初始)
这些工具与功能键Ctrl、Shift、Alt以及空格相配合会有特殊的效果。
这是所有工具的图示(见左图):
下面是工具详解:
1、选择工具
选择工具是一组形状不同的工具组成,一共有四个,分别如下:
(方形)快捷键M;
这个工具用来进行选择,在选取了选择工具后,可以按下鼠标左键在图像上拉出一个方形放手后形成一个选择,在选择区出现以后,将光标放入选择区内,再按下鼠标左键拖动光标即可移动选择区。它的Option属性栏上有以下选择项:
第一部分图标是选择选择方式,是建立新选择还是与原来的选择交、并、补。
Feather:羽化值,这概念在上节课中讲到过。
Anti-abased:是否反距齿,光滑边缘
Style:模式,有三种,第一种Normal,这种方式是自由选择,第二种Constrained Aspect Ration按一定方式强制选择,按下面输入的高宽比例选择,如高宽比输入的为1:1时,就能选择出一个正方形。第三种Fixed Size固定选择,第一种是根据选择时拉动的大小,第二种和第三种都根据输入的Width(宽度)和Hight(高度)值。
在不改变设定的情况下,下面的一些按键的加入可以增加功能
在没有选择的情况下,按住Shift选择,可以出现一个正方形选择。当已经有选择时,按Shift可以增加选择区,即与原选择合为并集。
按住Alt选择,可以以开始处为中心
当图中已经有一些选择时,按住Shift+Alt再选择,可以出现一个与原选择的交集。
按Ctrl+alt再拖动选择区,可以将选择区拷贝后移动,如果在移动选择区时按住Shift,选择区将在一定范围内垂直或左右移动。这一个操作很有作用,如果你要对一幅表格状的图像进行修复,你可以只修复一部分,再把这一部分变成选择区,三健同时按住,可以在垂直和水平方向复制,然后修复完全部图像(比如条型码)。
在选择区存在时,按下Ctrl将使工具变成移动工具。
光标键可以移动选择区,每次一个像素,光标键+Shift可以每次移动10个像素。
(圆形),快捷键M;
这个工具除了选择以圆形出现以外,一切和上一工具一样
(行选择),快捷键M;
用于在图形中选择出一个像素宽的行范围。它的选择项与前两项差不多。
(列选择),快捷键M;
用于在图形中选择出一个像素宽的列范围。它的选择项与前两项差不多。
2、移动工具 快捷键V;
这个工具用来进行移动图像,没有选择时,按下鼠标拖动将移动全部图像,这个移动不同于视窗移动。这个移动改变了图像在画布上的位置。如果在移动时有了选择,那么移动的将是选择部分的内容。点击后将会出现Option属性栏。有以下选择项:
Auto Select Layer:自动选择层。这个选项如果选中,可以比较自由的切换层,但是,出错也就容易了。
Show Bounding Box:显示变形的方框,可以自由变形。
后面那个象串烧的东西是对齐、间距之类的。
在不改变设定的情况下,下面的一些按键的加入可以增加功能:
在没有选择的情况下,按住Shift移动,可以使目标强制方向(按45度倍角)移动。
按住Alt后移动,会先拷贝一块,再移动
按住Alt后点辅助线,会使垂直线与水平线互换
按住Shift后移动辅助线,会使辅助线自动对齐标尺
光标键可以移动选择区,每次一个像素,光标键+Shift可以每次移动10个像素。
3、套索工具,快捷键L
其中含有三个子工具:
自由套索工具,快捷键L
这个工具用来进行选择,在选取了套索选择工具后,可以按下鼠标在图像上随意拉出一些线或者不规则形状放手后形成一个选择,在选择区出现以后,将光标放入选择区内,再拖动光标即可移动选择区。点击该工具后会出现Option属性栏。有以下选择项:
大部分选项与第一个工具选择工具一样。
Feather:羽化值
Anti-abased:是否按光滑边缘选择。
在不改变设定的情况下,下面的一些按键的加入可以增加功能
按住Shift,可以增加选择范围。
按住Alt再选,会从选择中去掉新选择的内容
在有选择的情况下,按住Shift移动,可以使目标按45度角移动。
按住Alt后移动,会先拷贝一块,再移动
按住Alt后移动辅助线,会使垂直线与水平线互换
按住Shift后移动辅助线,会使辅助线自动对齐标尺
按住Shift+Ctrl再移动选择区,可以将选择区拷贝后移动到另一个视图的新层中,并处于中心位置。
在选择区存在时,按下Ctrl将使工具变成移动工具。
光标键可以移动选择区,每次一个像素,光标键+Shift可以每次移动10个像素。
多边形套索工具 快捷键L
这个工具用于选择极不规则的形状。在选定该工具后,按住鼠标点,每点一下都与前一个点连成线,最后在点上双击就能自动与起始点闭合形成一个选择区。它的其它内容与套索工具一样。
磁性套索工具 快捷键L
这个工具是photoshop5新增加的工具,它利用色彩亮度等的差异,自动地对不规则的表面进行选择,在被选对象与其它部分反差较大的时候,这个工具用起来就很有效。
点击该工具后会出现Option属性栏。除了与套索工具一样的前半部分以外,后面还有以下选择项:
选择项有两项比较特殊的:
Lasso Width:套索的作用范围,范围越大,就越有磁性,比较远的地方都会被吸引过去。但太大的范围也不好控制。
Edge contrast:可以不加区分的对比程度,这个对比程度越高,就表示区分越不明显,对比程度越低,就表示区分得越细,一般来说,比较低的对比程度会较精确。
Frequency:频率。
4、魔棒工具 快捷键W
这个工具和菜单中的命令Color range差不多一样,都是通过颜色,亮度等参数的相近性来选择。这个工具被选定后,在图像上所要选择的位置击一下鼠标就可以实现自动选择,需要注意的是魔棒工具只对部分色彩模式有效。对黑白等模式无效。点击后,在上方的属性栏中有以下选择项:
Tolerance:容差范围,这个值设定颜色的入选范围,值越大,表示与鼠标点击的像素点差距更大的像素也能被选中,这样选的范围越大。
Anti-abased:是否按光滑边缘。
Contiguous:是否相邻,默认状态这个选项被选中,这将把选取限制在相邻的像素上,如果不选这个选项,则选取整个图像上的同一个范围的所有像素。
Use All Layers:多层同选。这个选项将使所有可见层的内容参与选择
在不改变设定的情况下,下面的一些按键的加入可以增加功能
在有选择的情况下,按住Shift+Ctrl移动选择区,可以使目标按强制方式(45度角倍数方向)移动。
按住Shift再选,可以在原选择中增加选择范围。
按住Alt再选,会从选择中去掉新选择的内容
按住Alt+Ctrl后移动辅助线,会使垂直线与水平线互换
按住Shift+Ctrl后移动辅助线,会使辅助线自动对齐标尺
在选择区存在时,按下Ctrl将使工具变成移动工具。
按住Shift+Ctrl再移动选择区,可以将选择区拷贝后移动到另一个视图的新层中,并处于中心位置。
光标键可以移动选择区,每次一个像素,光标键+Shift可以每次移动10个像素。
5、裁剪工具 快捷键C;
这个工具与菜单中的Crop命令是大体一样的,在选择了这个工具后,你按下鼠标在图像中拖动,就会出现一个框,框的边上有8个处理点,可以通过拖动处理点来改变尺寸等参数,或者旋转。在确定了双击变化区域中间的空白区域即可,也可以直接回车。
如果不满意变化,可以按下Esc取消。
选定该工具,在上方该工具的Option属性栏在没有开始裁剪的时候,有如下选项:
你可以设置要裁剪的图片的Width和Height,使裁剪按你定下的Width和Hight中数值来裁剪。还可以设定输出的结果Resolution,即分辨率,单位还是每英寸多少像素。
最后两个按钮Front Image,是将未裁剪的图形的以上参数列出,即初始数据。
Clear 是清除。
在图形中按下鼠标拉动,已经建立了裁剪框后,Option变成了下面这个样子:
Shield Cropped area Color:是指的用来在图中标示要剪要的区域的颜色,你可以要,也可以不要,也可以设定一种你喜欢的颜色。后面Opacity是该颜色的透明度。
Perspective:透视裁剪,可以使裁剪框按透视方式变化。
后面还有两个选择,由于是预设定,所有是灰的。
属性条的末端,有这么个选择 ,其中,勾表示裁剪,叉表示取消这个操作。
在裁剪的时候,按下Shift 表示等比例变化,按下Ctrl表示按透视方式变化,按下Atl表示一边同向变化。
6.切片工具,快捷键K;
这个工具下面还有一选择切片工具,如下:
切片工具用来把大图片切成小图片,这可以加快网络的下载速度,一般来说,在网页上都需要把大图片剪成小图片,不然打开太慢。当然,切片工作我强烈建议你在Imageready中去完成,因为那是专门为网页设计而准备的。
切的方法很简单,你只要随便下刀就行了,剩下的工作都由photoshop去做。
在切的时候,同样的,上方会有一个属性栏:
Style中有三个选择,分别是普通模式,等比例模式(默认值为1:1),固定大小方式,等比例方式,可以输入长宽比,而固定大小方式,可以输出你预设的切片大小,后面还有两项,分别是显示切片数量和线的颜色设定。
你在完成切片后,可以把切好的图形存成html格式,在Save to Web这个命令中,可以对存入的方式进行选择,你可以为这个贮存指定一个链接,也就是URL,在存好之后,你在需要调用这幅图的地方输入这个链接就可以了。
存的时候,如下图所示:
可以输入一个文件名,另外,要记得将选择为All Slices。你所存的地方,会出现一个html,你可以调用它。
按下Ctrl将使切片工具与选择切片工具互换。
选择切片工具
这个工具是和上面那个工具配合使用的,可以用来调整你切下的图片,使你建立的切片更合理,它的属性栏中有如下的选择项
其中,前面那四个图标是布置切片的排列顺序,分别是到最前,向前一层,向后一层和到最后一层,可以调整切片的顺序。
Promote to user Slice:转成用户切片,你在建立一个切片之后,其它空间会自动出现一个预切片,你可以用这个命令将其转换成你建立的切片。
第三部分是Slice Option,是一些有关于切片的操作,在点下后会出现以下这个对话框:
里面可以设定你的文件名,地址什么的,不过这个命令用处不大,你不改也没有什么,主要的设置还是在save to web里面,那里面也有个选择切片工具,只有用那个工具,才能真正选中你在存下来的切片。
7、喷笔工具 快捷键A
这个工具被选定后,在图像上所要喷色的位置击一下鼠标就可,不断按动鼠标或按住鼠标不放可以进行多处喷绘。笔尖的大小和形状可以在属性栏中Brush选项中进行调节。
点击后,在上方的属性栏中有以下选择项:
Brush:选笔尖的大小。
Pressure:压力范围,这个值设定喷枪的压力,值越大,色彩越浓。
属性栏的最后面还有一个选项:
这是一个按钮,点击后会出现这个对话框:
这是选择淡出值,里面的选项都有个Foad。如果选了Foad,并设定了步数,会按照你的设定,笔尖由粗到细,压力由大到小(由有色变为透明),颜色也可以由前景色变为背景色。
Foad:淡出,后面的值越小,由浓到淡的速度越快。
Step:步数。
效果如下:
在不改变设定的情况下,下面的一些按键的加入可以增加功能:
按住Shift再喷,可以使喷笔按直线喷。当你鼠标移动与垂直的角度小于45度时,沿垂直线喷。当角度大于45时,沿水平喷。
按住Alt再选,喷笔变成吸管工具,几乎所有的笔类工具在按下此键后都变成吸管工具。
按下Ctrl将使工具变成移动工具。
按住Shift+Ctrl再移动选择区,可以将选择区拷贝后移动,如果是移到另一个视图的新层中,将处于中心位置。
光标键可以移动选择区,每次一个像素,光标键+Shift可以每次移动10个像素。
直接键入数字,可以改变压力大小(0代表100%。)
8、画笔工具 快捷键B
毛笔工具与铅笔工具是在一起的,铅笔工具位于其下方:
这个工具被选定后,在图像上所要着色的位置按下鼠标就可,不断按动鼠标或按住鼠标不放可以进行在多处画出毛笔状的效果。笔尖的大上和形状可以在属性栏的Brush选项中进行调节。点击后,在上方的属性栏中有以下选择项:
Brush:选笔尖的大小。
Mode:填充模式选择,这里面的选择和fill里的选择是一样的。
Opacity:不透明度,这个值设定画笔的着色的透明度,值越大,色彩越浓。
Wet Edges:选定这个选项将产生一种用水将线条打散的效果
在属性栏的最后位置,仍然有这个按扭:
点击后同样会出现与喷枪差不多的对话框:
唯一不同的是压力换成了Opacity(不透明度)。效果和刚才那个喷笔差不多,就不再例举了。
在不改变设定的情况下,下面的一些按键的加入可以增加功能
按住Shift再喷,可以使喷笔按直线喷。当你鼠标移动与垂直的角度小于45度时,沿垂直线喷。当角度大于45时,沿水平喷。
按住Alt再选,喷笔变成吸管工具。
按下Ctrl将使工具变成移动工具。
按住Shift+Ctrl再移动选择区,可以将选择区拷贝后移动,如果移到另一个视图的新层中,将处于中心位置。
光标键可以移动选择区,每次一个像素,光标键+Shift可以每次移动10个像素。
直接键入数字,可以改变不透明度大小(0代表100%。)
9、铅笔工具 快捷键Y
这个工具在画笔工具下面,工具被选定后,在图像上所要着色的位置按下鼠标就可,不断按动鼠标或按住鼠标不放可以进行在多处画出铅笔状的效果。笔尖的大小和形状可以在属性栏中Brush选项进行调节。选择该工具后,在上方的属性栏中有以下选择项:
Brush:笔尖选择。
Mode:填充模式选择,这里面的选择和fill里的选择是一样的。
Opacity:不透明度,这个值设定铅笔的着色的透明度,值越大,色彩越浓。
Auto Erase:这个选项自动选择颜色,当第一点的颜色为背景色,则画出来的是前景色,相反,如果第一点所在位置为前景色,则画出来是背景色。比如如下效果
前面那两笔黑色的就是从白色区域开始画的,而后面则是从黑色区域开始。
后面同样有这样一个按钮:
也表示淡出功能,选择项与毛笔一样的。
在不改变设定的情况下,下面的一些按键的加入可以增加功能
按住Shift再画,可以使画笔按直线画。当你鼠标移动与垂直的角度小于45度时,沿垂直线画。当角度大于45时,沿水平画,按住shift不放时,每点一下鼠标都会自动与前一点连结成线。
按住Alt再选,铅笔变成吸管工具,几乎所有的笔类工具在按下此键后都变成吸管工具。
按下Ctrl将使工具变成移动工具。
按住Shift+Ctrl再移动选择区,可以将选择区拷贝后移动,如果是移到另一个视图的新层中,将处于中心位置。
光标键可以移动选择区,每次一个像素,光标键+Shift可以每次移动10个像素。
直接键入数字,可以改变不透明度大小(0代表100%。)
10、橡皮图章 快捷键S
这个工具是一个应用非常广泛的工具,这个工具经常被用来对图像进行修复和拼接,这个工具可以根据你的设定,在图像上任意地方选取一部分复制到需要的地方去。
下面还有另一个工具,样本方式的橡皮图章工具,如下图:
这个工具在被选定后,如果是从图像中某处位置复制,先在图像上所要选取的位置按下Alt+鼠标,相当于印章醮上颜色,再在指定位置不断按动鼠标或按住鼠标不放拖动就可以进行对选定位置的复制。橡皮的大小和形状可以在属性栏的Brush框中进行调节。点击后,在上方的属性栏中有以下选择项:
Brush:笔尖的样式和大小选择。
Mode:填充模式选择,这里面的选择和fill里的选择是一样的。
Opacity:不透明度,这个值设定复制的着色的透明度,值越大,越不透明
Aligned:是否按排列和伴随方式复制,如果选中,是在复制时选定取样位置后,十字星与光标的位置相对固定。这时复制的内容相对固定。若不选中,就按非伴随方式复制,这时的十字星位置与光标的位置不固定。所复制的内容显得随机一些。
Use All Layers:对所有的层发生作用,这个选项如果选中,不管有多少层,都按所见的样子进行复制,就当是一层一样。不选中就只对当前层发成作用。
同样,在属性栏的最后也有这个按钮:
但后面的对话框与前面的那几种笔类工具不太一样:
主要是没有了color这个选项,因为印章工具复制的是图像的内容,而不是颜色。
在不改变设定的情况下,下面的一些按键的加入可以增加功能
按下Shift可以使复制的内容强制,即沿直线方式复制。
按下Ctrl将使工具变成移动工具。
按住Shift+Ctrl再移动选择区,可以将选择区拷贝后移动到另一个视图的新层中,并处于中心位置。
光标键可以移动选择区,每次一个像素,光标键+Shift可以每次移动10个像素。
直接键入数字,可以改变不透明度大小(0代表100%。)
11、样本方式的橡皮图章 快捷键S
这个工具是上一个工具的特殊应用方式,这个工具经常被用来对图像进行新的创作,这个工具可以根据你的设定,在图像上任意地方选取一部分作为样本,复制到需要的地方去。
这个工具在被选定后,要有样本pattern才有意义,否则会出现出错的提示。有样本时就会自动的将样本填充到你点下鼠标的位置。关于样本的设定请参看和第二次课的内容,Edit菜单。
这个工具的属性栏与上一个工具的非常相象,但多了一个样本框,主要有以下选择项:
第一个选项还是Brush,即笔尖类型。
Mode:填充模式选择,这里面的选择和fill里的选择是一样的。
Opacity:不透明度,这个值设定复制的着色的透明度,值越大,越不透明。
Pattern:样本,里面的选择项见第二节课样本部分。
Aligned:选中表示从样本中按伴随方式复制,这种方式复制的样本填充得规范,排列得整齐,不选中表示从样本中按非伴随方式复制,这种方式复制的样本随机排列,不规范。
同样,在属性栏的最后也有这个按钮:
后面的对话框:
主要是没有了color这个选项,因为印章工具复制的是图像的内容,而不是颜色。
在不改变设定的情况下,下面的一些按键的加入可以增加功能。
按下Ctrl将使工具变成移动工具。
按下Shift可以使复制的内容强制,即沿直线方式复制。
按住Shift+Ctrl再