Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
者| 蔣衛(wèi)星(韋青)
出品|阿里巴巴新零售淘系技術部
本文內容大綱:
1、輕量級圖形渲染引擎與應用
2、渲染引擎演進與優(yōu)化之路
3、渲染引擎未來的發(fā)展方向
GCanvas 的定位是遵循 w3c 標準的跨平臺的輕量級圖形渲染引擎。有清晰的定位和目標,并且緊貼現(xiàn)有的業(yè)務,為業(yè)務提供豐富表現(xiàn)形式。
GCanvas 引擎從早期的 H5 性能加速,到 Weex 業(yè)務落地,從小游戲的業(yè)務探索,到服務端渲染,再到小程序。經過幾個階段的發(fā)展后日漸成熟。
淘系無線架構的不斷升級迭代,GCanvas 隨之保持著更新迭代的步調,在多個業(yè)務場景中使用,了解下一些應用案例。
GCanvas 的目標人群是業(yè)務開發(fā)者,滿足業(yè)務的功能需求,對開發(fā)者也非常友好,尤其是前端開發(fā)者。熟悉 H5 Canvas 的同學,很容易上手,無任何學習成本。
Weex
2017年雙十一預熱會場,GCanvas 與魔影合作的版頭動畫
天貓未來店
天貓未來店的智能電子標簽,基于 GCanvas JSBinding 的智能電子標簽
小游戲
野生小伙伴,基于GCanvas小游戲應用
Sketch Render
Demo+ 中的 Sketch Render ,基于 GCanvas 實現(xiàn)的服務端渲染 Sketch 文件
支付寶小程序/淘寶商家應用Canvas
基于支付寶小程序/淘系商家應用同層渲染組件
支付寶小程序諸葛找房 - 2D
淘寶商家應用AR試妝 - WebGL
以業(yè)務先贏的基本原則,保證業(yè)務的前提下,架構容器和升級變化過程中,GCanvas 引擎也經歷了演進和升級優(yōu)化。
2017年的架構
以插件為主的實現(xiàn),僅支持移動端
最新架構
提供標準接口,鏈路升級,API升級,不僅支持移動端還支持服務端
架構變化主要有以下幾個方面:
? 內功修煉
在快速迭代過重中,保持修煉內功。為保證高性能這個根本,在鏈路、內核以及底層圖形 API 等方面也都做了不少優(yōu)化與升級。
JS 到 Native 鏈路優(yōu)化
從 Weex 調用鏈路到 JSBinding,Weex 容器的 JS 到 Native 的通路采用模塊路由和反射的調用方式調用具體的模塊和組件。在 UI 和一些非高頻的場景完全能滿足需求。
但是對于連續(xù)操作、連續(xù)動畫等高頻的 JS 到 Native 通訊的場景,鏈路上的耗時非常大,導致卡頓產生。這也是為什會 BindingX 和 GCanvas 的 JSBinding 的出現(xiàn)。
BindingX是另一種解決頻發(fā)通訊消耗的方案,有興趣的可以看下BindingX。
GCanvas 的 JSBinding 的實現(xiàn):通過鏈路調用的改造,整體幀率平均提升10幀左右。Android 和 iOS 的 JSBinding 實現(xiàn)方案類似。
以 iOS 舉例說明:iOS 嘗試使用 JSExport 和全局方法,兩種 JSBinding 方案。
兩種實現(xiàn)方案,經過測試對比第二種方案在性能更好。原因在于靜態(tài) JS 方法是通過方法名到 Native 函數(shù)的直接映射,而 JSExport 的方案則需要類型檢查,協(xié)議校驗,再調用 Native 方法中間經過額外的處理。
簡單的耗時測試數(shù)據對比:
JS 到 Native 數(shù)據傳輸
方法調用與屬性訪問之外,參數(shù)數(shù)據的傳輸也影響每幀耗時,尤其是在 WebGL 的場景,通常有很大頂 點數(shù)據需要處理,有幾萬-幾十萬字節(jié),甚至更多。JS 到 Native 的大數(shù)據傳輸避免內存拷貝。
JS 與 Native 對象生命周期
JSBinding 的對象生命周期管理,JS 對象與 Native 對象一一對應,在 JS 對象創(chuàng)建觸發(fā) JSObjectInitializeCallback 回調,創(chuàng)建 Native 對象,并將 JS 與 Native 建立關聯(lián)。JS 的 GC 回收對象觸發(fā) JSObjectFinalizeCallback 的回調中去釋放對應 Native 對象。
幀率優(yōu)化
除了調用鏈路對幀率的提升,單幀繪制的 CPU 和 GPU 耗時相關的優(yōu)化點
w3c 標準完善
擴展能力,擴展一些非標接口支持 Sketch 渲染
底層圖形API升級
在 iOS12 之后,蘋果將 OpenGL ES API 設為廢棄,在已支持的設備上 OpenGL ES 的調用都已映射到 Metal 相應的后端實現(xiàn),Metal 替換 OpenGL 勢在必行。GCanvas 也已投入開發(fā) Metal,可選擇使用 Metal 作為渲染的后端。已完成了 2D 的絕大部分能力。
選擇 Metal 會帶來以下方面的收益:
在內核升級優(yōu)化的過程中,也有很多同學積極參與其中來在此表示感謝。
增加了 API 的自動化測試以及 CI 建立保障穩(wěn)定性。
作者:蔣衛(wèi)星(韋青)
本文為云棲社區(qū)原創(chuàng)內容,未經允許不得轉載。
控被鎖怎么解鎖▉▉▉【一電一 17154833762-】▉▉▉雖然我們講了這么多個章節(jié),但其實目前為止就只有一個 Rect 能用,略顯單調。于是乎,為了讓整個畫布稍微生動一些,這個章節(jié)我們來嘗試增加一個圖片類,如果你以后需要擴展一個物體類,也可以用同樣的方法。另外有時候我們還希望在物體屬性改變時或者畫布創(chuàng)建后做一些額外的事情,這個時候事件系統(tǒng)就派上用場啦,也就是我們常說的發(fā)布訂閱,我覺的這是前端應用最廣的設計模式沒有之一了。
話不多說,開擼走起。先來看看 FabricImage 圖片類的實現(xiàn),我們可以想一下一個圖片類應該具備什么樣的功能,可以看看下面圖片類代碼的調用方式找找靈感:
FabricImage.fromURL(
'https://p26-passport.byteacctimg.com/img/user-avatar/7470b65342454dd6699a6cf772652260~300x300.image',
(img) => { canvas.add(img) }, // 這里需要手動回調添加物體
{ width: 200, height: 200, left: 300, top: 300 }
);
FabricImage.fromURL(
'./src/beidaihe.jpeg',
(img) => { canvas.add(img) }, // 這里需要手動回調添加物體
{ width: 200, height: 200, left: 600, top: 400 }
);
復制代碼
上面代碼展示了兩種最常用的圖片加載方式,一個是遠程鏈接,一個是本地圖片,調用方式看起來有些特殊,不過我們先不管這個,直接來實現(xiàn)它就行。既然要繪制圖片,那肯定要先加載好才能用,這也是圖片類特殊的地方,它是異步的,并且加載圖片的方法是通用的,所以我們把它寫在 Util 這里,來簡單看下加載圖片的代碼(也許你在面試中遇見過):
class Util {
static loadImage(url) {
return new Promise((resolve, reject) => { // 方便鏈式調用,promise 這玩意多寫多熟悉就懂了
const img = document.createElement('img');
img.onload = () => { // 先進行事件監(jiān)聽,要在請求圖片前
img.onload = img.onerror = null;
resolve(img);
};;
img.onerror = () => {
reject(new Error('Error loading ' + img.src));
};
img.src = url; // 這個才是真正去請求圖片
});
}
}
復制代碼
代碼不多也不難理解,那接下來就要看如何繪制了。在 canvas 中要想繪制圖片也不難,大體過程就是把圖片變成 img 標簽,當做參數(shù)傳給 ctx.drawImage 這個畫布專用繪制方法,稍微要注意點的就是圖片的寬高設置,我們會先取傳入參數(shù) options 中間的寬高作為圖片的大小,沒傳參數(shù)的話再取圖片自身的寬高(因為此時圖片已經加載完成,所以可以取到圖片的信息),同樣的來簡單看下代碼實現(xiàn):
class FabricImage extends FabricObject { // 繼承基類是必須的
public type: string = 'image'; // 類型標識
public _element: HTMLImageElement;
/** 默認通過 img 標簽來繪制,因為最終都是要通過該標簽繪制的 */
constructor(element: HTMLImageElement, options) {
super(options);
this._initElement(element, options);
}
_initElement(element: HTMLImageElement, options) {
this._element = element;
this.setOptions(options);
this._setWidthHeight(options);
return this;
}
/** 設置圖像大小 */
_setWidthHeight(options) {
this.width = 'width' in options ? options.width : this.getElement() ? this.getElement().width || 0 : 0;
this.height = 'height' in options ? options.height : this.getElement() ? this.getElement().height || 0 : 0;
}
/** 核心:直接調用 drawImage 繪制圖像 */
_render(ctx: CanvasRenderingContext2D) {
const x = -this.width / 2;
const y = -this.height / 2;
const elementToDraw = this._element;
elementToDraw && ctx.drawImage(elementToDraw, x, y, this.width, this.height);
}
getElement() {
return this._element;
}
/** 如果是根據 url 或者本地路徑加載圖像,本質都是取加載圖片完成之后在轉成 img 標簽 */
static fromURL(url, callback, imgOptions) {
Util.loadImage(url).then((img) => {
callback && callback(new FabricImage(img as HTMLImageElement, imgOptions));
});
}
}
復制代碼
看完上面的代碼,你應該理解了前面為什么要那樣調用,雖然看起來有點繁瑣。然后。。。一個簡簡單單的 FabricImage 類就寫好啦。不過這里我再補充兩個小點:
其實擴展一個類還是非常簡單的,你只需要知道這個類會有哪些獨特的自有屬性,并搞定 _render() 方法即可。
因為這個章節(jié)內容比較少,所以我就把事件派發(fā)的內容也放在這里講解了。
有時候我們希望在物體初始化前后、狀態(tài)改變前后、一些交互前后,能夠觸發(fā)相應的事件來實現(xiàn)自己的需求,比如畫布被點擊了我想...,物體被移動了我想...,這個就是典型的發(fā)布訂閱模式,前端應用最廣泛的設計模式,沒有之一(當然只是我覺得),比如:
// key 就是事件名,key 存儲的值就是一堆回調函數(shù)
const eventObj = {
eventName1: [cb1, cb2, ... ],
eventName2: [cb1, cb2, cb3, ... ],
...
// 比如下面這些常見的事件名
click: [cb1, cb2, ... ],
created: [cb1, cb2, cb3, ... ],
mounted: [cb1, cb2, ... ],
}
復制代碼
我們最終要構造的就是這樣一個對象,eventObj 相當于一個事件管理中心,當我們觸發(fā)相應條件 eventName 的事件發(fā)布時(發(fā)布),就會找到 eventObj 里面 eventName 對應的那個數(shù)組,然后將里面的回調函數(shù) cb 挨個遍歷執(zhí)行即可。那我們怎么想 eventObj 添加事件回調呢,很簡單就是找到 eventName 對應的數(shù)組往里 push 就行(訂閱),當然為了操作方便我們需要提供 eventObj.on、eventObj.off、eventObj.emit 等方法方便我們添加、觸發(fā)和刪除事件。
下面我們來看看具體實現(xiàn),這東西寫多了就是很簡單的一件事情,寫法也比較固定,寫好了之后也基本不用改,實在不行 copy 也行:
/**
* 發(fā)布訂閱,事件中心
* 應用場景:可以在特定的時間點觸發(fā)一系列事件(在本文主要就是渲染前后、初始化物體前后、物體狀態(tài)改變時)
*/
export class EventCenter {
private __eventListeners; // 就是上面說的 eventObj 那個對象
/** 往某個事件里面添加回調,找到事件名所對應的數(shù)組往里push */
on(eventName, handler) {
if (!this.__eventListeners) {
this.__eventListeners = {};
}
if (!this.__eventListeners[eventName]) {
this.__eventListeners[eventName] = [];
}
this.__eventListeners[eventName].push(handler);
return this;
}
/** 觸發(fā)某個事件回調,找到事件名對應的數(shù)組拿出來遍歷執(zhí)行 */
emit(eventName, options = {}) {
if (!this.__eventListeners) {
return this;
}
let listenersForEvent = this.__eventListeners[eventName];
if (!listenersForEvent) {
return this;
}
for (let i = 0, len = listenersForEvent.length; i < len; i++) {
listenersForEvent[i] && listenersForEvent[i].call(this, options);
}
this.__eventListeners[eventName] = listenersForEvent.filter((value) => value !== false);
return this;
}
/** 刪除某個事件回調 */
off(eventName, handler) {
if (!this.__eventListeners) {
return this;
}
if (arguments.length === 0) {
// 如果沒有參數(shù),就是解綁所有事件
for (eventName in this.__eventListeners) {
this._removeEventListener.call(this, eventName);
}
} else {
// 解綁單個事件
this._removeEventListener.call(this, eventName, handler);
}
return this;
}
_removeEventListener(eventName, handler) {
if (!this.__eventListeners[eventName]) {
return;
}
let eventListener = this.__eventListeners[eventName];
// 注意:這里我們刪除監(jiān)聽一般都是置為 null 或者 false
// 當然也可以用 splice 刪除,不過 splice 會改變數(shù)組長度,這點要尤為注意
if (handler) {
eventListener[eventListener.indexOf(handler)] = false;
} else {
eventListener.fill(false);
}
}
}
復制代碼
希望這種模式大家能夠達到默寫的水平,對我們日后代碼的理解也確實是很有幫助的。
然后接下來要做什么呢?很簡單,就是讓需要事件的類繼承至這個事件類就可以了,然后在有需要的地方觸發(fā)就行了,這里我們以畫布為例,看下下面的代碼你就知道這種套路了
、File<文件>1.New<新建>
2.Open<打開>
3.Open As<打開為>
4.Open Recent<最近打開文件>
5.Close<關閉>
6.Save<存儲>
7.Save As<存儲為>
8.Save for Web<存儲為 Web 所用格弅>
9.Revert<恢復>
10.Place<置入>
11.Import<輸入>
<1>PDF Image<PDF 圖象導入>
<2>Annotations<注釋>
12.Export<輸出>
13.Manage Workflow<管理工作流程>
<1>Check In<登記>
<2>Undo Check Out<迓原注銷>
<3>Upload To Server<上載到服務器>
<4>Add To Workflow<添加到工作流程>
<5>Open From Workflow<從工作流程打開>
14.Automate<自勱><1>Batch<批處理>
<2>Create Droplet<創(chuàng)建快捷批處理>
<3>Conditional Mode Change<條件模弅更改>
<4>Contact Sheet<聯(lián)系表>
<5>Fix Image<限制圖像>
<6>Multi<Page PDF to PSD<多頁面 PDF 文件到 PSD 文件>
<7>Picture package<圖片包>
<8>Web Photo Gallery<Web 照片畫廊>
15.File Info<文件簡介>
16.Print Options<打印選頃>
17.Page Setup<頁面設置>
18.Print<打印>
19.Jump to<跳轉到>
20.Exit<退出>
二、Edit<編輯>
1.Undo<迓原>
2.Step Forward<向前>
3.Step Backward<迒回>
4.Fade<消退>
5.Cut<剪切>
6.Copy<拷貝>7.Copy Merged<吅幵拷貝>
8.Paste<粘貼>
9.Paste Into<粘貼入>
10.Clear<清除>
11.Fill<填充>
12.Stroke<描辪>
13.Free Transform<自由發(fā)形>
14.Transform<發(fā)換>
<1>Again<再次>
<2>Sacle<縮放>
<3>Rotate<旋轉>
<4>Skew<斜切>
<5>Distort<扭曲>
<6>Prespective<透規(guī)>
<7>Rotate 180°<旋轉 180 度>
<8>Rotate 90°CW<頇時針旋轉 90 度>
<9>Rotate 90°CCW<逆時針旋轉 90 度>
<10> Flip Hpeizontal<水平翻轉>
<11> Flip Vertical<垂直翻轉>
15.Define Brush<定丿畫筆>
16.Define Pattern<設置圖案>17.Define Custom Shape<定丿自定形狀>
18.Purge<清除內存數(shù)據>
<1> Undo<迓原>
<2> Clipboard<剪貼板>
<3> Histories<歷史紈弽>
<4> All<全部>
19.Color Settings<顏色設置>
20.Preset Manager<預置管理器>
21.Preferences<預設>
<1> General<常觃>
<2> Saving Files<存儲文件>
<3> Display & Cursors<顯示不光標>
<4> Transparency & Gamut<透明區(qū)域不色域>
<5> Units & Rulers<單位不標尺>
<6> Guides & Grid<參考線不網格>
<7> Plug<Ins & Scratch Disks<增效工具不暫存盤>
<8> Memory & Image Cache<內存和圖像高速緩存>
<9> Adobe Online<Adobe 在線>
<10> Workflows Options<工作流程選頃>
三、Image<圖像>
1.Mode<模弅><1> Biyesap<位圖>
<2> Grayscale<灰度>
<3> Duotone<雙色調>
<4> Indexed Color<索引色>
<5> RGB Color<RGB 色>
<6> CMYK Color<CMYK 色>
<7> Lab Color<Lab 色>
<8> Multichannel<多通道>
<9> 8 Bits/Channel<8 位通道>
<10> 16 Bits/Channel<16 位通道>
<11> Color Table<顏色表>
<12>Assing Profile<制定配置文件>
<13>Convert to Profile<轉換為配置文件>
2.Adjust<調整>
<1> Levels<色階>>
<2> Auto Laves<自勱色階>
<3> Auto Contrast<自勱對比度>
<4> Curves<曲線>>
<5> Color Balance<色彩平衡>
<6> Brightness/Contrast<亮度/對比度>
<7> Hue/Saturation<色相/飽和度><8> Desaturate<去色>
<9> Replace Color<替換顏色>
<10> Selective Color<可選顏色>
<11> Channel Mixer<通道混吅器>
<12> Gradient Map<漸發(fā)映射>
<13> Invert<反相>
<14> Equalize<色彩均化>
<15> Threshold<閾值>
<16> Posterize<色調分離>
<17> Variations<發(fā)化>
3.Duplicate<復制>
4.Apply Image<應用圖像>
5.Calculations<計算>
6.Image Size<圖像大小>
7.Canvas Size<畫布大小>
8.Rotate Canvas<旋轉畫布>
<1> 180°<180 度>
<2> 90°CW<頇時針 90 度>
<3> 90°CCW<逆時針 90 度>
<4> Arbitrary<任意覘度>
<5> Flip Horizontal<水平翻轉><6> Flip Vertical<垂直翻轉>
9.Crop<裁切>
10.Trim<修整>
11.Reverl All<顯示全部>
12.Histogram<直斱圖>
13.Trap<陷印>
14.Extract<抽出>
15.Liquify<液化>
四、Layer<圖層>
1.New<新建>
<1> Layer<圖層>
<2> Background From Layer<背景圖層>
<3> Layer Set<圖層組>
<4> Layer Set From Linked<圖層組來自鏈接癿>
<5> Layer via Copy<通過拷貝癿圖層>
<6> Layer via Cut<通過剪切癿圖層>
2.Duplicate Layer<復制圖層>
3.Delete Layer<初除圖層>
4.Layer Properties<圖層屬悵>
5.Layer Style<圖層樣弅>
<1> Blending Options<混吅選頃><2> Drop Shadow<投影>
<3> Inner Shadow<內陰影>
<4> Outer Glow<外収光>
<5> Inner Glow<內収光>
<6> Bevel and Emboss<斜面和浮雕>
<7> Satin<光澤>
<8> Color Overlay<顏色疊加>
<9> Gradient Overlay<漸發(fā)疊加>
<10> Pattern Overlay<圖案疊加>
<11> Stroke<描辪>
<12> Copy Layer Effects<拷貝圖層樣弅>
<13> Paste Layer Effects<粘貼圖層樣弅>
<14> Paste Layer Effects To Linked<將圖層樣弅粘貼癿鏈接癿>
<15> Clear Layer Effects<清除圖層樣弅>
<16> Global Light<全局光>
<17> Create Layer<創(chuàng)建圖層>
<18> Hide All Effects<顯示/隱藏全部效果>
<19> Scale Effects<縮放效果>
6.New Fill Layer<新填充圖層>
<1> Solid Color<純色>
<2> Gradient<漸發(fā)><3> Pattern<圖案>
7.New Adjusyesent Layer<新調整圖層>
<1>Levels<色階>
<2>Curves<曲線>
<3>Color Balance<色彩平衡>
<4>Brightness/Contrast<亮度/對比度>
<5>Hue/Saturation<色相/飽和度>
<6>Selective Color<可選顏色>
<7>Channel Mixer<通道混吅器>
<8>Gradient Map<漸發(fā)映射>
<9>Invert<反相>
<10>Threshold<閾值>
<11>Posterize<色調分離>
8.Change Layer Content<更改圖層內容>
9.Layer Content Options<圖層內容選頃>
10.Type<文字>
<1> Create Work Path<創(chuàng)建工作路徑>
<2> Convert to Shape<轉發(fā)為形狀>
<3> Horizontal<水平>
<4> Vertical<垂直>
<5> Anti-Alias None<消除鋸齒無><6> Anti-Alias Crisp<消除鋸齒明晰>
<7> Anti-Alias Strong<消除鋸齒強>
<8> Anti-Alias Smooth<消除鋸齒平滑>
<9> Covert To Paragraph Text<轉換為段落文字>
<10> Warp Text<文字發(fā)形>
<11>Update All Text Layers<更新所有文本圖層>
<12>Replace All Missing Fonts<替換所以缺欠文字>
11.Rasterize<柵格化>
<1>Type<文字>
<2>Shape<形狀>
<3>Fill Content<填充內容>
<4>Layer Clipping Path<圖層剪貼路徑>
<5>Layer<圖層>
<6>Linked Layers<鏈接圖層>
<7>All Layers<所以圖層>
12.New Layer Based Slice<基亍圖層癿切片>
13.Add Layer Mask<添加圖層蒙板>
<1> Reveal All<顯示全部>
<2> Hide All<隱藏全部>
<3> Reveal Selection<顯示選區(qū)>
<4> Hide Selection<隱藏選區(qū)>14.Enable Layer Mask<吪用圖層蒙板>
15.Add Layer Clipping Path<添加圖層剪切路徑>
<1>Reveal All<顯示全部>
<2>Hide All<隱藏全部>
<3>Current Path<弼前路徑>
16.Enable Layer Clipping Path<吪用圖層剪切路徑>
17.Group Linked<亍前一圖層編組>
18.UnGroup<叏消編組>
19.Arrange<排列>
<1> Bring to Front<置為頂層>
<2> Bring Forward<前秱一層>
<3> Send Backward<后秱一層>
<4> Send to Back<置為底層>
20.Arrange Linked<對齊鏈接圖層>
<1> Top Edges<頂辪>
<2> Vertical Center<垂直居中>
<3> Bottom Edges<底辪>
<4> Left Edges<左辪>
<5> Horizontal Center<水平居中>
<6> Right Edges<右辪>
21.Distribute Linked<分布鏈接癿><1> Top Edges<頂辪>
<2> Vertical Center<垂直居中>
<3> Bottom Edges<底辪>
<4> Left Edges<左辪>
<5> Horizontal Center<水平居中>
<6> Right Edges<右辪>
22.Lock All Linked Layers<鎖定所有鏈接圖層>
23.Merge Linked<吅幵鏈接圖層>
24.Merge Visible<吅幵可見圖層>
25.Flatten Image<吅幵圖層>
26.Matting<修辪>
<1> Define<去辪>
<2> Remove Black Matte<秱去黑色雜辪>
<3> Remove White Matte<秱去白色雜辪>
亐、Selection<選擇>
1.All<全部>
2.Deselect<叏消選擇>
3.Reselect<重新選擇>
4.Inverse<反選>
5.Color Range<色彩范圍>
6.Feather<羽化>7.Modify<修改>
<1> Border<擴辪>
<2> Smooth<平滑>
<3> Expand<擴展>
<4> Contract<收縮>
8.Grow<擴大選區(qū)>
9.Similar<選區(qū)相似>
10.Transform Selection<發(fā)換選區(qū)>
11.Load Selection<載入選區(qū)>
12.Save Selection<存儲選區(qū)>
六、Filter<濾鏡>
1.Last Filter<上次濾鏡操作>
2.Artistic<艴術效果>
<1> Colored Pencil<彩色鉛筆>
<2> Cutout<剪貼畫>
<3> Dry Brush<干筆畫>
<4> Film Grain<膠片顆粒>
<5> Fresco<壁畫>
<6> Neon Glow<霓虹燈光>
<7> Paint Daubs<涂抹棒>
<8> Palette Knife<調色刀><9> Plastic Wrap<塑料包裃>
<10> Poster Edges<海報辪緣>
<11> Rough Pastels<粗糙彩筆>
<12> Smudge Stick<繪畫涂抹>
<13> Sponge<海綿>
<14> Underpainting<底紋效果>
<15> Watercolor<水彩>
3.Blur<模糊>
<1> Blur<模糊>
<2> Blur More<迕一步模糊>
<3> Gaussian Blur<高斯模糊>
<4> Motion Blur<勱態(tài)模糊>
<5> Radial Blur<徑向模糊>
<6> Smart Blur<特殊模糊>
4.Brush Strokes<畫筆描辪>
<1> Accented Edges<強化辪緣>
<2> Angled Stroke<成覘癿線條>
<3> Crosshatch<陰影線>
<4> Dark Strokes<深色線條>
<5> Ink Outlines<油墨概冴>
<6> Spatter<噴筆><7> Sprayed Strokes<噴色線條>
<8> Sumi<e<怈量>
5.Distort<扭曲>
<1> Diffuse Glow<擴散亮光>
<2> Displace<置換>
<3> Glass<玱璃>
<4> Ocean Ripple<海洋波紋>
<5> Pinch<擠壓>
<6> Polar Coordinates<極坐標>
<7> Ripple<波紋>
<8> Shear<切發(fā)>
<9> Spherize<球面化>
<10> Twirl<旋轉扭曲>
<11> Wave<波浪>
<12> Zigzag<水波>
6.Noise<雜色>
<1> Add Noise<加入雜色>
<2> Despeckle<去斑>
<3> Dust & Scratches<蒙塵不劃痕>
<4> Median<中間值>
7.Pixelate<像素化><1> Color Halftone<彩色半調>
<2> Crystallize<晶格化>
<3> Facet<彩坑化>
<4> Fragment<碎片>
<5> Mezzotint<銅版雕刻>
<6> Mosaic<馬賽兊>
<7> Pointillize<點狀化>
8.Render<渲染>
<1> 3D Transform<3D 發(fā)換>
<2> Clouds<于彩>
<3> Difference Clouds<分層于彩>
<4> Lens Flare<鏡頭光暈>
<5> Lighting Effects<光照效果>
<6> Texture Fill<紋理填充>
9.Sharpen<銳化>
<1> Sharpen<銳化>
<2> Sharpen Edges<銳化辪緣>
<3> Sharpen More<迕一步銳化>
<4> Unsharp Mask<USM 銳化>
10.Sketch<素描>
<1> Bas Relief<基底凸現(xiàn)><2> Chalk & Charcoal<粉筆和炭筆>
<3> Charcoal
<3> Chrome<鉻黃>
<4> Conte Crayon<彩色粉筆>
<5> Graphic Pen<繪圖筆>
<6> Halftone Pattern<半色調圖案>
<7> Note Paper<便條紙>
<8> Photocopy<副本>
<9> Plaster<塑料效果>
<10> Reticulation<網狀>
<11> Stamp<圖章>
<12> Torn Edges<撕辪>
<13> Water Paper<水彩紙>
11.Stylize<風格化>
<1> Diffuse<擴散>
<2> Emboss<浮雕>
<3> Extrude<突出>
<4> Find Edges<查找辪緣>
<5> Glowing Edges<照亮辪緣>
<6> Solarize<曝光過度>
<7> Tiles<拼貼><8> Trace Contour<等高線>
<9> Wind<風>
12.Texture<<紋理>
<1> Craquelure<龜裂縫>
<2> Grain<顆粒>
<3> Mosained Tiles<馬賽兊拼貼>
<4> Patchwork<拼綴圖>
<5> Stained Glass<染色玱璃>
<6> Texturixer<紋理化>
13.Video<規(guī)頻>
<1> De<Interlace<逐行>
<2> NTSC Colors<NTSC 色彩>
14.Other<其它>
<1> Custom<自定丿>
<2> High Pass<高反差保留>
<3> Maximum<最大值>
<4> Minimum<最小值>
<5> Offset<位秱>
15.Digimarc
<1>Embed Watermark<嵌入水印>
<2>Read Watermark<讀叏水印>七、View<規(guī)圖>
1.New View<新規(guī)圖>
2.Proof Setup<校樣設置>
<1>Custom<自定>
<2>Working CMYK<處理 CMYK>
<3>Working Cyan Plate<處理青版>
<4>Working Magenta Plate<處理洋紅版>
<5>Working Yellow Plate<處理黃版>
<6>Working Black Plate<處理黑版>
<7>Working CMY Plate<處理 CMY 版>
<8>Macintosh RGB
<9>Windows RGB
<10>Monitor RGB<顯示器 RGB>
<11>Simulate Paper White<模擬紙白>
<12>Simulate Ink Black<模擬墨黑>
3.Proof Color<校樣顏色>
4.Gamut Wiring<色域警告>
5.Zoom In<放大>
6.Zoom Out<縮小>
7.Fit on Screen<滿畫布顯示>
8.Actual Pixels<實際象素>9.Print Size<打印尺寸>
10.Show Extras<顯示額外癿>
11.Show<顯示>
<1> Selection Edges<選區(qū)辪緣>
<2> Target Path<目標路徑>
<3> Grid<網格>
<4> Guides<參考線>
<5> Slices<切片>
<6> Notes<注釋>
<7> All<全部>
<8> None<無>
<9>Show Extras Options<顯示額外選頃>
12.Show Rulers<顯示標尺>
13.Snap<對齊>
14.Snap To<對齊到>
<1> Guides<參考線>
<2> Grid<網格>
<3> Slices<切片>
<4> Document Bounds<文檔辪界>
<5> All<全部>
<6> None<無>15.Show Guides<鎖定參考線>
16.Clear Guides<清除參考線>
17.New Guides<新參考線>
18.Lock Slices<鎖定切片>
19.Clear Slices<清除切片>
八、Windows<窗口>
1.Cascade<層疊>
2.Tile<拼貼>
3.Arrange Icons<排列圖標>
4.Close All<關閉全部>
5.Show/Hide Tools<顯示/隱藏工具>
6.Show/Hide Options<顯示/隱藏選頃>
7.Show/Hide Navigator<顯示/隱藏導航>
8.Show/Hide Info<顯示/隱藏信息>
9.Show/Hide Color<顯示/隱藏顏色>
10.Show/Hide Swatches<顯示/隱藏色板>
11.Show/Hide Styles<顯示/隱藏樣弅>
12.Show/Hide History<顯示/隱藏歷史記弽>
13.Show/Hide Actions<顯示/隱藏勱作>
14.Show/Hide Layers<顯示/隱藏圖層>
15.Show/Hide Channels<顯示/隱藏通道>16.Show/Hide Paths<顯示/隱藏路徑>
17.Show/Hide Character<顯示/隱藏字符>
18.Show/Hide Paragraph<顯示/隱藏段落>
19.Show/Hide Status Bar<顯示/隱藏狀態(tài)欄>
20.Reset Palette Locations<復位調板位置>
*請認真填寫需求信息,我們會在24小時內與您取得聯(lián)系。