圖是很多UI設計師的一項日常工作。平時做完設計圖,要將設計稿切成便于制作成頁面的圖片,并標注好尺寸和間距,交付給前端來完成html+css布局的靜態頁面,有利于交互,形成良好的視覺感。
但有的認為前端自己會切圖是最好,不建議把切圖的事情丟給設計師做。這樣中途會損耗結構講解的開銷(比如網頁層級,細節重構方案等),畢竟最后css是前端去碼,怎么切最合適要自己把捏的,否則又要引出一個新問題(設計師有必要掌握考慮重構實現的切圖嗎?)。
總之,切圖對于設計師設計創作、程序員寫代碼來說,其實不是件難事,但是似乎成為了件苦差事?
UI設計師:“因為不愿切圖,被人事勸退。”
程序員:“被人蔑稱切圖仔該怎么懟回去……”
看到這里,小編只想替各位UI設計師和程序員說:“你才是切圖仔,你全家都是切圖仔!”
到底手動切圖是有多惱火?小編上網搜索了一下,發現傳統的切圖方法如下:
1.打開下載的psd文件
打開后,因為文件比較長所以看不清細節,所以要放大圖片到合適的大小。
2.修改參考線
圖片中很多條藍色的參考線都是是設計人員用來設計用的,很多我們都不需要,所以先把這些參考線都清除掉。
3.選擇要切的圖標
①選擇工具欄第一個“移動工具”
②然后查看上面選項欄“自動選擇”有沒有被選中……
……此處省略300字……
4.切片需要的圖標
現在,我們已經用參考線把我們的圖標給包裹出來了,下面,我們要用切片工具來切出我們的圖標
①選擇切片工具,左邊工具欄從上往下數第五個,然后右鍵就可以找到,然后選中 ……
……此處省略300字……
5.將切片存儲為圖片
①選擇 “文件”=》“存儲為Web所用格式”
②調整縮放比例,讓圖片能完整的在窗口顯示 ……
……此處省略300字……
need-to-insert-img
小編十分納悶,有自動切圖工具大家為什么不用?
摹客iDoc,一鍵切圖,可對接PS和Sketch等。從此切圖只需兩步!
第一步,安裝并打開Sketch插件。
去摹客官網(https://idoc.mockplus.cn/download)下載摹客iDoc Sketch插件安裝文件并點擊進行安裝。插件安裝好后打開Sketch,在「Plugins(插件)」中找到摹客 iDoc 插件,選擇并打開。使用摹客平臺賬號即可登錄。
第二步,上傳切圖。
選中需要切圖的圖層或編組,點擊Sketch 右下角的Make Exportable右側的加號便可完成切圖標記,無需再設置多種切圖倍率,iDoc將自動生成不同倍率的切圖。
點擊下拉框選擇設計稿所屬的項目。
點擊上傳所選或全部上傳便會將設計稿資源一鍵上傳至iDoc,設計師和開發可登錄摹客iDoc查看標注與下載切圖等等。
當然,市面上還有別的切圖工具,但是小編向你保證,摹客iDoc雖然不是你的唯一選擇,但卻是你的最佳選擇!
原因很簡單。摹客iDoc是一個多功能的產品協作平臺,集自動標注、一鍵切圖、多樣批注、快速交互、全貌畫板和團隊管理為一體,從設計到產品再到開發只需一個文檔,大大優化工作流程,是簡單的只能切圖的插件不能比的;其次,對比其他多功能平臺,摹客iDoc有相當多的亮點:
:使用的photoshop版本為PS6。
今天的任務是按照設計師提供的設計稿,實現HTML頁面。一般來講,設計稿里面會出現很多圖標和圖像,這個在利用HTML和CSS是繪制不出來或者很難繪制出來的,開發效率會很低,因此我們會選擇切圖然后貼圖的方式完成我們的工作。
之前工作的時候也用過切圖,但是很少使用參考線,重新學習發現參考線的作用真的很大,它可以提前確定切圖的區域,方便我們判斷切圖分區的合理性;其次切圖時自動吸附到參考線的操作減少了我們切圖時的誤差。
切圖應該按照如下步驟:
以百度前端技術學院給我們的設計圖(下圖)為例
1 觀察設計圖選取一個最優切圖方案
該設計圖比較常規,我們需要的切圖分為四種:背景圖,圖標,異形字標題,圖片。根據這個需求我們來切割設計圖。
2 將影響切圖的圖層隱藏起來
在上述案例中,切割背景圖時我們需要將背景圖上面的圖層全部隱藏,這樣才能得到一個干凈的背景圖。
利用上圖的操作(將圖層前面的眼睛點掉)我們將需要隱藏的圖層隱藏器來,得到下面這些干凈的背景圖
注意:第三章人像背景圖去掉遮蓋在上面的圖層后與其他人像背景圖顏色不一樣時因為原設計圖人像背景顏色本來就不一樣,這里時設計時素材選擇出現的問題,正常應該是人像背景圖顏色一致,這樣才能統一美觀。
3 使用參考線將需要切的圖標和圖像包裹起來
設計時一般都會用到參考線,我們拿到設計圖時沒有看到參考線可能是被隱藏了,使用快捷鍵“ctrl”+“;”可以顯示(隱藏)參考線。
如下圖所示,點擊紅框標尺部分不放然后拖動到設計圖區域即可創建一條橫向/豎向參考線,將參考線拖動到標尺部分即可刪除該條參考線;當當前工具為移動工具時,按住“alt”鍵然后點擊參考線會將豎向參考線變成橫向參考線(橫向參考線變成豎向參考線)。
以下圖建好的參考線為例,紅色箭頭指向的參考線將圖標包裹起來,綠色箭頭指向的參考線表明圖標與右側文字的間距,方便同類型圖標大小和間距的選擇。
4 選擇切片工具將圖標和圖像切割
如下圖所示,將鼠標停在從上到下數第五個工具處,點擊鼠標右鍵,選取切片工具,找到需要切的圖標或圖形,從左上角拖拉到右下角。因為右參考線的輔助,選取的時候會自動吸附到參考線上,這樣避免了切圖時的誤差。
注意:選取的時候盡量靠近參考線,這樣更好幫助軟件工作。
將所有圖標或圖像切好后呈現下圖的樣子,每個切片的左上角都有一個角標顯示自己是哪一個切片。
5 將切好的圖標和圖像存儲為web所用格式
點擊“文件”-“存儲到web所用格式”。
選擇下圖箭頭所示存儲格式。
點擊存儲,然后跳出下圖所示彈窗,根據自己的需求設置格式,設置和切片(下圖中的所有設置為常規設置),然后選擇保存路徑,最后點擊保存。
保存成功后我們會在保存路徑里面找到一個“image”文件夾,所有的切片都在文件夾里面,如下圖所示。
最后選取出我們需要的切片,大功告成。
款神器就是「CodeFun」,它號稱“UI 設計稿智能生成源代碼,10 分鐘完成 8 小時工作量”,讓我們做前端,不搬磚。
說干就干,我按照官網介紹的三個步驟,順利將 UI 稿件,并轉換為 Vue.js 代碼了,看下最終效果:
從導入文件到導出代碼,前后只花了三分鐘,簡直不要太爽了
說說使用方法吧~
「CodeFun」官網上介紹的快速上手流程,只需 3 個步驟即可從 UI 稿到生成項目代碼。(該不會吹牛吧)
依葫蘆畫瓢,首先我按照官網說明,安裝好「CodeFun」插件,然后準備好 sketch 素材(也支持 PS 素材):
然后開始三個步驟(省略安裝插件過程):
直接打開 sketch 文件后,在頂部「插件」菜單,選擇「CodeFun」的「上傳設計稿」菜單:
然后在彈框中登錄賬號,并選擇創建的「項目」和「畫板」:
然后點擊「上傳」,等待上傳完成后,后臺便馬上能看到我們導入的項目,并且每個頁面整齊擺放,我們隨便打開一個頁面看看:
熟悉的代碼,熟悉的 HTML/CSS/JavaScript 映入眼簾。
然后試試導出項目代碼,可以自行選擇導出「微信小程序」或者「Vue.js」項目,還有選擇導出的是 rpx 單位還是 px 單位,簡直太貼心了!
說說簡單體驗后的感受
太香了,我們可以根據項目需要,選擇生成 H5 或者小程序代碼,還原度極高,很符合官網介紹的特點「精準還原設計稿,生成如工程師手寫一般的代碼」。
當然,畢竟是自動生成,可能存在部分不完美的地方(為CodeFun加),在實際項目部署前,我們花點時間做樣式微調,然后加上自己的業務處理邏輯,就可以啦。
這給我省下太多切圖時間了!
當然,這里只是簡單介紹,大家可以體驗下(官網:https://code.fun),然后結合文檔,相信你會很有收獲~
在我翻閱「CodeFun」文檔時,發現它竟然還有好多強大的功能。
List 標簽組件用于循環列表,它的強大之處在于,可以自動將相似的列表內容,并自動識別為 List 標簽,生成 v-for 風格的代碼。那么我們眼見為實,以下面頁面評論列表為例,試試看:
紅色框內容設置為 List 標簽后,生成代碼如下(需要開啟“將 List 標簽輸出為循環列表”):
<div class="flex-col list">
<template v-for="(item, i) in listJWuhbbAm">
<div class="list-item flex-col" :key="'item' + i">
<div class="top-group flex-row">
<img class="image_15" :src="item.avatar" />
<div class="right-group flex-col">
<span class="text_20">{{item.name}}</span>
<span class="text_22">{{item.date}}</span>
</div>
</div>
<span class="text_24">{{item.desc}}</span>
</div>
</template>
</div>
其 JS 代碼如下(需要開啟“數據綁定輸出模式”):
export default {
data() {
return {
"listJWuhbbAm": [{
"avatar": "https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/60d5579cf7299c00115e83a5/60ead063fdb7540011c108e0/16260016341787250137.png",
"name": "曉曉曉",
"date": "2019-02-26",
"desc": "非常的好,干凈整潔,衛生做得很到位,房東人很好,離地鐵站很近,五星好評,推薦哦!"
}, {
"avatar": "https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/60d5579cf7299c00115e83a5/60ead063fdb7540011c108e0/16260016342203168767.png",
"name": "啦啦菇涼",
"date": "2019-02-16",
"desc": "非常的好,干凈整潔,衛生做得很到位,房東人很好,很負責任,離地鐵站很近,生活方便,附近很多美食街,大型購物廣場,五星好評,推薦推薦哦,來了你就不想走的地方…"
}, {
"avatar": "https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/60d5579cf7299c00115e83a5/60ead063fdb7540011c108e0/16260016343523144906.png",
"name": "不告訴你",
"date": "2019-02-16",
"desc": "西天的晚霞揮動著絢麗的紗巾,晚風吹起來,一支支狗尾草搖響一渠黃昏的抒情曲。一排排白色的小木屋出現了,像童話一般精致,又像夢一樣美麗。"
}]
};
},
};
和我們實際業務開發一樣,這里的 List 列表也是共用 CSS 樣式代碼的:
.list-item {
padding: 27rpx 28rpx 28rpx;
border-bottom: solid 2rpx rgb(245, 245, 245);
}
.list {
margin-top: 15px;
}
是不是很香,用著還很方便~
在業務開發中,經常會遇到如「多列操作按鈕」這種網格類的布局需求,如下圖紅色框內容:
考慮到不同尺寸屏幕的適配問題,經常需要對布局進行特殊設置,常用就有 Grid 布局,在「CodeFun」中,就支持自動將設計稿中這類 UI 生成為 Grid 布局代碼,簡單操作后,上圖轉化為下面代碼:
<div class="grid">
<div class="grid-item flex-col items-center">
<img src="https://project-user-resource-1256085488.cos.ap-guangzhou.myqcloud.com/60d5579cf7299c00115e83a5/60ead063fdb7540011c108e0/16260016485084464827.png" class="image_7" />
<span class="text_9">附近</span>
</div>
<div class="grid-item flex-col items-center">
<img src="https://project-user-resource-1256085488.cos.ap-guangzhou.myqcloud.com/60d5579cf7299c00115e83a5/60ead063fdb7540011c108e0/16260016485093876260.png" class="image_7" />
<span class="text_9">市區</span>
</div>
<div class="grid-item flex-col items-center">
<img src="https://project-user-resource-1256085488.cos.ap-guangzhou.myqcloud.com/60d5579cf7299c00115e83a5/60ead063fdb7540011c108e0/16260016485107042498.png" class="image_7" />
<span class="text_9">寫字樓</span>
</div>
<div class="grid-item flex-col items-center">
<img src="https://project-user-resource-1256085488.cos.ap-guangzhou.myqcloud.com/60d5579cf7299c00115e83a5/60ead063fdb7540011c108e0/16260016485084464827.png" class="image_7" />
<span class="text_9">郊區</span>
</div>
<div class="grid-item flex-col items-center">
<img src="https://project-user-resource-1256085488.cos.ap-guangzhou.myqcloud.com/60d5579cf7299c00115e83a5/60ead063fdb7540011c108e0/16260016485093876260.png" class="image_7" />
<span class="text_9">公寓</span>
</div>
<div class="grid-item flex-col items-center">
<img src="https://project-user-resource-1256085488.cos.ap-guangzhou.myqcloud.com/60d5579cf7299c00115e83a5/60ead063fdb7540011c108e0/16260016485107042498.png" class="image_7" />
<span class="text_9">城中村</span>
</div>
</div>
樣式代碼如下:
.grid-item {
padding: 9px 0;
}
.grid {
margin: 9px 12px 0 11px;
color: rgb(51, 51, 51);
font-size: 12px;
font-weight: 500;
line-height: 17px;
white-space: nowrap;
height: 162px;
display: grid;
grid-template-columns: repeat(3, 1fr);
}
這就很贊了。
當我們需要設置頂部 header 或者底部固定 footer 時,只需將組件類型設置成 Header 或者 Footer 標簽即可:
對于前端應用,經常需要在不同頁面進行跳轉,「CodeFun」也支持設置頁面路由跳轉:
生成了下面的 JS 代碼:
export default {
data() {
return {};
},
methods: {
view_21OnClick() {
this.$router.push({
name: 'index'
});
}
}
};
在「CodeFun」使用過程中,加上這幾個功能,已經能滿足我們大部分的切圖場景了,節省下來的切圖時間,可以讓我們有更多時間用來處理業務邏輯。cool
當我們在項目中開始使用 「CodeFun」,會發現我們業務研發流程悄悄發生了變化,下圖對比了兩種業務研發流程:
顯然,新的研發流程搭配「CodeFun」,會更加靈活且高效~
體驗了幾天「CodeFun」后,說說我的一些建議:
我認為「CodeFun」重要的價值在于:利用高效的識別特點,大幅度幫助前端工程師從繁瑣的頁面切圖中解放出來。通過較低的學習成本,讓使用者能更加簡單且高效的完成需求。
目前「CodeFun」產品還在快速迭代,建議大家在使用過程中,盡量避免使用太過復雜的 UI 稿,可能會存在生成效果的偏差(相信「CodeFun」工程師們已經在努力減小這些偏差),但其實也還好,我們可以在生成的代碼中,適當做一些調整即可。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。