“切图”是指通过测量设计稿,从设计稿中提取图片等方式为页面开发提供支持的过程。

整个“切图”过程主要分为以下五个主要步骤:

  1. 分析设计图;
  2. 测量元素;
  3. 提取图片;
  4. 保存图片;
  5. 图片优化与合并;

1.分析设计图

以前我做练习时,往往是拿起一份PSD设计稿,大致看上两眼就开始边敲代码边切了,后来踩了一些坑才意识到这样的做法效率低下。有时代码敲着敲着会突然发现,哎?这里有一个下拉菜单?或者有时发现,哎?这里是不是可以重用之前的代码?通常这样的后知后觉都令人追悔莫及,所以慢慢也要求自己事先要留个心眼。所以第一步“分析设计图”我认为还可以分为以下三个部分:

    • 仔细浏览设计图,考虑网页的整体结构(在这里心中就可以预想页面将来的编辑方式,划分为几个区域?大体如何实现?);
    • 仔细查找页面各部分是否有隐藏下拉菜单,hover效果等隐藏设计(好的设计师应对此提前在说明文档中注明);
    • 观察页面结构,考虑代码重用的可能;

2.测量元素

切图主要测量的对象有:文字大小图片间距颜色;这里以PS工具为例,基本上前三者都可以使用矩形工具(M)完成,后者主要使用吸管工具(I)。一般来说,在参考线,标尺具备的前提下,图片越放大,测量精度越高。

3.提取图片

所提取的图片大致可以分为直接在页面上呈现的内容型图片,和作为背景使用的修饰性图片,对于前者直接切下来保存就好,而对于后者则需要分离其前景图案,文字,之后再切下保存。对于比较特别的修饰性图片,可以只切其一部分,使用CSS的repeat属性进行重复以节约存储空间,提高页面加载速度;具体步骤如下:

    • 隐藏文字只留背景;这里又分为两种情况,第一种是文字为独立图层,那么只需使该图层不可见即可,第二种为图片与文字融为一体,这种情况下基本的思路是平铺遮盖,但是根据背景性质不同分为可拉伸与不可拉伸两种状况,前者需使用矩形选框+自由变换拉伸遮盖,后者使用矩形选框+Alt+移动工具移动遮盖
    • 使用移动工具(V)选中所需图层(若有多个图层则复选后右键合并图层Ctrl+E);
    • 在所选图层上右键“复制图层到新文件”;
    • 裁切新文件画布大小;

这种方法的缺陷在于步骤太多,操作不便,而且所切图像新建画布有时太大,因此我通常使用另外一种方法,这种方法对视设计稿大小对机器性能有一定要求:

    • 矩形选框选好目标对象;
    • 合并可见图层(Ctrl+Shift+E);
    • 复制所选对象(Ctrl+C),新建图层(Ctrl+N),粘贴所选对象(Ctrl+V);

这种方法的优点在于图片要多大切多大,省去了裁切画布的麻烦,而且快捷键操作效率高,缺点则在于要用矩形选框框住目标对象,而且文件较大时,合并所有可见图层较慢。

4.图片保存

保存需要考虑保存方式图片格式图片命名三个部分。

保存方式是指页面图片选定后如何选择图层保存的问题,是逐一保存?还是使用Sprite技术进行合并?,需要提前规划好,可以省去后面很多合并图片的时间;

图片格式则主要指要根据所需保存图片的类型选择相应的图片格式,我们通常用PNG格式用来保存有透明图像,用JPG格式保存颜色丰满图像,用GIF格式保存动图;

搞定前两步,最后一步便是对图片的命名,不要小看图像的命名,使用清晰,准确,描述性的名称命名图像(例如:“.header__banner”)可以节省后期图片变更时查找图片所耗费的时间。

5.图片优化与合并

图片优化与合并是两回事,优化是指对图片进行压缩,使其既满足用户视觉需要,文件大小又尽可能的小;而图片合并是指,使用“图片精灵”技术,将多张图片(通常是图标)合并为一张图片,以节省加载次数。

但这样做的则弊端在于,为了使用CSS背景定位,必须要在HTML中加入许多无语义的容器标签,但相较于页面加载时间的提升,这点损失也是微不足道的。

以上。

前端初级技能No.1 [切图]的更多相关文章

  1. 前端开发使用Photoshop切图详细步骤

    切图的主要目的是从设计师提供的psd中获取网页制作所要的资源 一.界面设置 1. 新建文件,调整界面大小,背景设置为透明 2. 自动选择,把组切换为图层 3. 添加窗口内容,一共四项:图层.历史纪录. ...

  2. 前端菜鸟起飞之学会ps切图

    由于之前只顾着追求效率,没有学习过PS,但其实这是前端开发人员需要学会的技能之一,曾经看过一个大佬的前端经验分享说他在招聘时遇到不会切图的会直接pass掉,可见前端开发人员学会切图是多么重要.通过观看 ...

  3. Photoshop如何实现UI自动切图?

    切图严格来说并不是UI设计师的工作, 而是前端工程师的工作,指的是将UI设计师的设计(大部分为photoshop创建的PSD文件)转化为界面(网页或窗体等)所需要资源的过程.切图是衔接UI设计和应用程 ...

  4. 利用PS自动切图、支持svg且支持icoMoon——再也不用四处去转格式了

    今天想导出svg格式的图片支持webFont,结果AI打不开了,文件好像损坏了,于是就想办法在PS里面导出. 网上搜索到一篇文章,腾讯的 http://isux.tencent.com/ps-phot ...

  5. 那些令人迷惑的名词:切图/H5/XML/REST

    长时间以来对一些名词感到很困惑,不明白其具体指什么,在此记录一下. 一.切图 1.1 原先理解 从字面意思理解,切图是指将一张大的图切割成很多张小的图片.最早(视频教程网或者我要自学网)看到的视频也是 ...

  6. 使用PHP写了一个图片分割等份工具,便于前台页面切图时使用。

    目的: 由于网站更新活动较频繁,其大多数以静态图片为主,设计人员在除了设计图后都要给前端制作人员再次切图从而达到页面加载图片缓慢的问题,为了减少工作量做了该工具. 功能: 上传一张图,将其分割成指定等 ...

  7. 前端工程师技能之photoshop巧用系列第三篇——切图篇

    × 目录 [1]切图信息 [2]切图步骤 [3]实战 前面的话 前端工程师除了使用photoshop进行测量之外,更重要的是要使用该软件进行切图.本文是photoshop巧用系列的第三篇——切图篇 切 ...

  8. ps切图抠图详解-web前端(转)

    网页设计在技术层面上,第一步是美工做出网页效果图,第二步就是网页前端进行网页切图.网页切图工具常用的有fireworks.PS,这里使用PS进行网页切图. 我们通过设计稿,得到我们想要的产出物(如.p ...

  9. 做一个会PS切图的前端开发

    系列链接 做一个会使用PS的前端开发 做一个会PS切图的前端开发 切图方法分类 PhotoShop从CS版本演变到现在的CC版本,切图功能发生了比较大的变化,我们可以把PhotoShop CS版本时的 ...

随机推荐

  1. vue通信

    组件实例的作用域是孤立的. 一.父子通信 父组件通过props向下传递数据给子组件,子组件通过events给父组件发送消息. 要让子组件使用父组件的数据,我们需要通过子组件的props选项.prop是 ...

  2. document.selection window.getSelection()

    IE9以下支持:document.selection  IE9.Firefox.Safari.Chrome和Opera支持:window.getSelection() 屏幕取词 function ge ...

  3. hdu2254 奥运 矩阵的应用

    hdu2254 奥运 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2254 题意:题目让我们求得是的可以得到的金牌数量,而和金牌数量=在t1到t2天( ...

  4. TCP和UDP的区别?

    答:TCP提供面向连接的.可靠的数据流传输,而UDP提供的是非面向连接的.不可靠的数据流传输.TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报.TCP注重数据安全性,UDP数据传输快,因为 ...

  5. ledecode Reverse Words in a String III

    557. Reverse Words in a String III Given a string, you need to reverse the order of characters in ea ...

  6. django将数据库中数据直接传到html

    1.当然,前提是建立和配置好django数据库啦~ 2.在python后台函数中引入需要的表 #要读取home这个APP下的models.py文件,引入其中的Student_message_unedi ...

  7. matrix---简单dp,边界边界-_-

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5569 简单dp,恶心的边界处理,无语: if((i+j)%2==1) dp[i][j]=a[i-1][ ...

  8. nginx 哈希表结构图

  9. Linux more命令

    more命令类似与cat命令,却比cat命令强大,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作. 1.快捷键 space, z 向下翻页b,ctrl+b       向上翻页 E ...

  10. 菜鸟也能学cocos2dx3.0 浅析刀塔传奇(下)

    首先我们讲点话外的东西,异步载入:众所周知,loading里面一般都是载入数据的,那么是怎么载入的呢? Director::getInstance()->getTextureCache()-&g ...