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

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

  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. linux shell 脚本使用

    定义变量 fileName=text.txt 变量名称fileName,变量名称text.txt 使用变量 $fileName 用美元符号$开头,后面加变量名称,即可使用变量 使用用户输入参数 打印第 ...

  2. hdu2254 奥运 矩阵的应用

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

  3. .Net Ajax跨域请求总结

    导语 之前写过一篇文章Ajax跨域请求COOKIE无法带上的解决办法,这两天正好好好的查了一下相关知识,做来总结一下 一.传统 ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法 ...

  4. Android sharedPreferences 用法

    Android 提供了一种数据轻量级的数据持久化方法.使用SharedPreferences 接口 将 key-value 形式的primitive data 存储到文件中.多用于保存软件偏好配置信息 ...

  5. time-based DB

    这类时间序列数据库最多,使用也最广泛.一般人们谈论时间序列数据库的时候指代的就是这一类存储.按照底层技术不同可以划分为三类. 直接基于文件的简单存储:RRD Tool,Graphite Whisper ...

  6. php格式化输出数组

    写网页的时候经常需要在页面中打印数组,但格式特别难看,看看一个html神器吧<pre>标签,能非常标准的显示数组格式 使用的时候只需要这样打印你的数组就OK了,太好用了,神器! echo ...

  7. python基础知识体系

    一.编程风格.语法要求.变量格式.基本数据类型.运算.流程控制.用户交互 二.字符串.列表.元组.字典.迭代器和生成器 三.函数.内置函数.文件操作.异常处理.模块.常用模块.lambda.yield ...

  8. Json与字符串互相转换

    jQuery插件支持的转换方式:    $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象      浏览器 ...

  9. ssm之mapper异常 Result Maps collection already contains value for com.ssj.mapper.UserMapper 和 Type interface com.ssj.mapper.UserMapper is already known to the MapperRegistry.

    异常一:Result Maps collection already contains value for com.ssj.mapper.XXXMapper 原因分析:XXXmapper.xml文件中 ...

  10. 使用CocoaPods管理第三方类库[效率]

    项目文件夹   加入第三方框架后的项目文件夹例如以下图 为什么要用Cocoapods?   iOS开发中经常使用的第三方库,比方: 1.FMDB:在使用SQLite是仅仅须要加入libsqlite3. ...