【AlphaImageLoader濾鏡】
filter模式使用的是AlphaImageLoader濾鏡。 它的作用是在對(duì)象容器邊界內(nèi),在對(duì)象的背景和內(nèi)容之間顯示一張圖片。 如果載入的是png圖片,其透明度會(huì)被支持,可以用來(lái)解決png的兼容問(wèn)題。 詳細(xì)參考msdn的AlphaImageLoader Filter和“Microsoft.AlphaImageLoader濾鏡講解”。 它包括三個(gè)屬性:enabled(濾鏡是否激活),sizingMethod(圖像顯示方式)和src(圖像路徑)。 程序主要使用后面兩個(gè)屬性。
sizingMethod有三種方式:
- crop:剪切圖片以適應(yīng)對(duì)象尺寸;
- image:默認(rèn)值。增大或減小對(duì)象的尺寸邊界以適應(yīng)圖片的尺寸;
- scale:縮放圖片以適應(yīng)對(duì)象的尺寸邊界。
對(duì)于預(yù)載圖片對(duì)象_preload,要獲取圖片的原始尺寸,所以要用image方式。 而預(yù)覽圖片對(duì)象img,則要根據(jù)設(shè)定尺寸顯示圖片,所以要用scale方式。
而src屬性的路徑還支持本地路徑,是實(shí)現(xiàn)filter模式的關(guān)鍵所在。 幸運(yùn)的是濾鏡并沒(méi)有像file控件那樣提高安全性,否則就沒(méi)辦法實(shí)現(xiàn)圖片本地預(yù)覽了。
【nsIDOMFile接口】
ff從3.0(或更早)開(kāi)始,就不能通過(guò)value獲取file的完整路徑,也不支持直接用本地路徑顯示圖片。 不過(guò)欣喜的是,它同時(shí)也提供了nsIDOMFile接口,能更好地獲取文件數(shù)據(jù)。 在ff的file控件有一個(gè)FileList對(duì)象,包含了帶nsIDOMFile接口的File對(duì)象。 ps:FileList對(duì)象貌似是一個(gè)NodeList對(duì)象,但目前只能用第一個(gè),可能是為了將來(lái)實(shí)現(xiàn)一個(gè)file控件選擇多個(gè)文件的功能預(yù)留的。
這個(gè)File對(duì)象有三個(gè)獲取文件數(shù)據(jù)的方法:
- getAsText:獲取文件的文本數(shù)據(jù),可以通過(guò)參數(shù)設(shè)置編碼;
- getAsDataURL:獲取文件的Data URI數(shù)據(jù);
- getAsBinary:獲取文件的二進(jìn)制數(shù)據(jù)。
其中g(shù)etAsDataURL獲得的Data URI數(shù)據(jù)可以用于顯示圖片,_domfileData中就是用它來(lái)獲取數(shù)據(jù)的。
File對(duì)象還有支持兩個(gè)屬性:fileName(文件名,不包括路徑)和fileSize(文件大。。 相關(guān)具體說(shuō)明參考mozilla的File和nsIDOMFile。
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
上一頁(yè) JavaScript 圖片預(yù)覽效果 [6] 下一頁(yè) JavaScript 圖片預(yù)覽效果 [8]
◎進(jìn)入論壇網(wǎng)頁(yè)制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評(píng)論。
|