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

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

  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. Maven的安装配置及初次创建项目与java单元测试工具JUnit

    Maven  安装     1.把maven安装包解压到某个位置     2.配置M2_HOME环境变量指向这个位置 3.在path环境变量中添加;%M2_HOME%\bin 配置镜像 国内的阿里云镜 ...

  2. C# DataTable和DataRelation

    form2.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.D ...

  3. Flask之中间件

    from flask import Flask, flash, redirect, render_template, request app = Flask(__name__) app.secret_ ...

  4. Linux下多线程的重要知识点

    线程属性: typedef struct { int                              detachstate;   线程的分离状态 int                   ...

  5. nodejs获取参数的方法

    1 获取get的querystring参数 GET /test?name=fred&tel=0926xxx572 let aa = req.param("name"); l ...

  6. flatpickr功能强大的日期时间选择器插件

    flatpickr日期时间选择器支持移动手机,提供多种内置的主题效果,并且提供对中文的支持.它的特点还有: 使用SVG作为界面的图标. 兼容jQuery. 支持对各种日期格式的解析. 轻量级,高性能, ...

  7. 谷歌浏览器不能打开本地HTML文件

    打开浏览器右上角菜单——>更多工具——>扩展程序——>将Axure RP Extension For Chrome 0.62.crx文件拖入——>成功后,勾选相关选项 文件的下 ...

  8. Git的安装和设置

    1.客户端下载 首先可以在https://git-scm.com/downloads下载客户端,进行安装. 2.安装 安装比较简单,可以直接默认一步一步往下安装即可: 3.配置github的ssh秘钥 ...

  9. jsonp解决跨域问题

    日常开发网页中,时常遇到跨域问题,通常解决办法:后端提供的接口支持jsonp格式,前端采用dataType:jsonp. 一:Jquery封装的AJAX,dataType:jsonp格式的方法: $. ...

  10. python 中list的操作(循环、切片、增、删、改、查、反转、排序)

    列表的索引(下标)从0开始,最后一个可以用-1表示. 1. 循环 如果直接for 循环一个list 的时候,那么每次循环的都是这个List里的元素 2. 切片 可指定步长进行取值,步长默认为1 3. ...