ViewNX and Picture Control - 照片調控檔之套用

quill mark

我只有一開始的時候,嘗試過只用Jpeg格式拍照,後來,就乖乖地使用Raw格式了。

機身直出Jpeg當然是很方便,但是一按下快門就「木以成狗」(韋小寶上身),拍攝後若對效果不甚滿意,用電腦補救的空間很小,而且很麻煩。用Raw格式,可在電腦上對相片進行各種機身設定調整,等於是把機身設定的工作延後到電腦上來做,此時螢幕顯示的色調比較準確(至少比機身的LCD準──以我的D40x來說),也可藉由嘗試不同設定,來找尋最佳的效果。對我而言,這可減輕我拍攝時的壓力。

另外,Nikon的「照片調控」(Picture Control)功能,好像是在D40x以後才建立的,我的D40xD80也一樣)只能載入一組色調補償曲線,其他像是銳利度、對比、飽合度等,都還需要一一調整。而若用Raw檔拍,可透過免費的ViewNX軟體,在電腦上套用預先設好或下載來的「調控檔」,比用我D40x在選單上一樣樣調整,要快多了。

Map picture
以我上個星期六去到「大佳公園」(左圖)拍照來說,當天雖然雲層不厚,也出了太陽,但就是有點陰沉的感覺,遠方的景物,都似蒙上了一層灰暗的陰影。我不知該怎麼說,總之,就是不能用天氣晴朗,或是天高氣爽等形容詞來形容就是了。

因此,當天所拍的照片,在現場看的時候,就覺得顏色有點陰鬱,但從LCD上看,倒是還能接受,就這樣劈哩啪拉按了不少次快門,直到回家一看,才覺得效果實在和想像中的相差太多,不用ViewNX來挽救看看,當天的成果就幾乎等於零了。

先看一下不做任何調整的Jpeg(如下),用的是自動白平衡,其餘都是用「標準」或預設值,我曝光補償先減了0.7,這是為了用D-Lighting所預做的準備。

DSC_3061_original

為了讓色調藍一些,先從白平衡著手。把設定改成「日光直射」(Direct sunlight),再把微調值調到4200,於是就變成這樣:

DSC_3061_original_001

要讓天空和河面變得更藍,我又下了重手,套上網路上下載來的BlueSky調控檔(詳情請見:Nikon D3 BlueSky 照片調控實戰範例),就變成了這樣:

DSC_3061_original_002

感覺上,這個調控檔是加強了銳利度、色差對比,以及顏色飽合度。天空沒有變得很藍,河水倒是藍到爆掉了……

我EV是-0.7,所以顏色陰暗,此時就是用D-Lighting的時候了,我用的是Medium,結果就變成:

DSC_3061_original_003

我不喜歡做很多調整動作,所以這樣只要三步驟的調法,還蠻對我的胃口的。效果當然不敢說很好,至少以我的標準來說,還可接受就是了。

其實我之前習慣用Capture NX 2,但是試用期快到了,想習慣一下免費的ViewNX。我還不太知道ViewNX可不可以儲存調整程序,將之套用在其他照片上,只知道可以一次選取多檔,批次調整白平衡、套用調控檔,再批次轉檔。以手續上來說,Capture NX 2比較方便些,我們可以先調出一張滿意的照片,再將調整手序儲存起來,套用到另一批需要調整的相片中;而 ViewNX則是在調出滿意的照片後,自己要記得做過哪些調整,然後再選取需要調整的檔案們,重新再調一次。也算還好啦!

這次的新手亂試,就到此告一段落。

Category: 0 意見

抑制雜訊的開與關 - High ISO Noise Reduction

quill mark

在網路上看別人分享的高ISO相片,老是覺得別人拍得好美,色澤飽滿、畫面也頗為清晰;而我自己拍的,卻是色調昏沉,背景花花綠綠。

我自己覺得,應該是縮圖的關係吧!但是即使是縮圖,好像也不該有那麼大的差異。D40x的高ISO表現,是不如新近或高階機種,如D90D300D3那麼強大,但看過不少測試,在800以下,都還是堪用的範圍,為何我的800,和別人拍的,仍有些差距呢?

於是我想到,是不是「抑制雜訊」(Noise Reduction)有無開啟的差別呢?說明書中關於「抑制雜訊」的說明,是在第73頁:

抑制雜訊

相機將處理在高感光度下,或是在8秒或更低快門速度時所拍攝的照片,以減少"雜訊"(顆粒形或隨機出現的異色亮點畫素)的干擾。請從以下選項中進行選擇:

選項 說明
開啟 相機將處理在 ISO 400以上感光度下,或在約8秒或更低快門速度時所拍攝的照片,以減少雜訊。在連續拍攝模式下,幅數速率將變慢,並且緩衝記憶的容量將會減少。(在8秒或更低的快門速度下,觀景器底部將會顯示"job nr",其顯示時間約等於目前快門速度的0.5至1倍。當"job nr"從顯示屏中消失時,即可開始拍攝新照片。如果在處理完成之前相機被關閉,將不會實現減除雜訊效果。)
關閉 在ISO 800或以下的感光度設定下,減除雜訊功能關閉。當ISO感光度為800以上時仍會執行最小程度的減除雜訊功能。

我看了一下D80的說明書,果然,稍微高階一點的機種,在這方面的設定就多了些,這個Noise Reduction開啟的時機,還分為長時間曝光和高ISO,而「抹除」的程度,也分有普通、低、高之分。D40x畢竟陽春多了。

我想知道的,是「抑制雜訊」的開啟和關閉之間,有多少差異?另外,就是機身的「抑制雜訊」效果,和用Capture NX2軟體的Noise Reduction,一不一樣?

本來拍了一系列比較照片,打算來個圖文並茂的對照。但是,拍完之後才發現,我只是在「抑制雜訊」開啟和關閉的情況下,各拍了ISO 400、800、1600、3200(HI 1)兩組共8張相片,但卻沒有統一同ISO值下的曝光值。在矩陣測光模式之下,我的兩組要拿來對照的相片,因為拍攝時間的不同,在室內省電燈泡的光源下,有著不同的曝光值(我用光圈光決,所以不同的是快門速度),雖然差異不大,但還是看得出亮度有些許不同,這樣比較起來,準確性就受影響了。我實在懶得再拍一次,所以就不貼對照圖了。

NX2 Metadata NR以相機「抑制雜訊」的開啟與關閉,和軟體Capture NX2所讀出的資訊相比較,可以發現,在ISO 400下,不管機身的「抑制雜訊」是開還是關,NX2的Metadata欄裡,High ISO NR都是顯示OFF,但是在Edit List的Camera Settings中,其Noise Reduction都是打勾的,且Color Noise Reduction值,都是Intensity: 0%, Sharpness: 5(圖右)。

由此得知,說明書中「相機將處理在 ISO 400以上感光度下……」,ISO 400是不包含在裡面的,也就是說,ISO 400以下(含),不受機身「抑制雜訊」的開或關影響,但即使是關閉,仍是會有著極輕微的彩色雜訊抑制作用(銳利度加5)。

關於ISO值,與機身「抑制雜訊」,和Metadata、Color Noise Reduction之間的關係,可用表格歸納如下:

ISO 機身NR開啟時NX2資訊 機身NR關閉時NX2資訊
400 OFF (I: 0%, S: 5) OFF (I: 0%, S: 5)
800 ON, Normal (I: 15%, S: 7) OFF (I: 0%, S: 5)
1600 ON, Normal (I: 27%, S: 6) ON, Low (I: 13%, S: 7)
3200 (HI 1) ON, Normal (I: 50%, S: 6) ON, Low (I: 27%, S: 6)

* 資訊欄的訊息為:Metadata的High ISO NR和程度(ON或OFF,Normal或Low), 括號內的是Color Noise Reduction的Intensity值與Sharp值。

因此,我得到的結論是,機身「抑制雜訊」開啟與否,決定的只是抑制雜訊的程度多寡而已。在ISO 400及以下,NR開啟與關閉的結果是一樣的,都是基本消費Sharp 5;ISO 800的話,NR開啟,執行的是「普通」程度的NR效果 (I: 15%, S: 7),若關閉,則還是基本消費S: 5;ISO 1600,NR開啟,執行的也是「普通」程度的NR,只不過IS值升高成為27%, 6,而NR關閉,則和說明書上說的一樣「仍會執行最小程度的減除雜訊功能」,此時的最小程度就是低(Low),IS值是13%, 7;ISO 3200和1600的情況類似,但IS值提升得更高一點,此時的「低」,幾乎相當於ISO 1600時的「普通」。

我比較拍攝的ISO 800之下,兩張NR開啟與關閉的相片,覺得雜訊抹除之後,畫面乾淨了許多,加上縮圖後,對銳利度的要求降低,相片的效果也變得比較能接受了(當然,照片比不上別人漂亮,那是技不如人了)。

我進一步把原先NR關閉的那一張,用NX2把IS值改成和開啟時一樣的15%、7,發現其效果幾乎無法分辨,不過如我先前所言,此兩張照片的曝光值原本就不一樣,所以結果我只當成是參考。

用機身來執行NR,會降低連拍速度,而且增加機身的負擔(可能還費電),既然成果幾乎一樣,那我還是傾向於以NX2後製來調IS,何況這樣還可以改變不同IS值,比機身固定的單一值更具彈性。

我的技術差,所以只敢拍Raw,為後製挽救保留一點餘地。也因為這樣,我原先就必須利用Capture NX2或View NX來套用調控檔並轉檔,故對我而言,這樣並不會比用機身設定來得不便。經過不專業的測試後,我決定還是維持目前機身關閉NR的設定。

Category: 0 意見

學生棒球賽:台灣師大 vs. 文化大學

quill mark

上個星期日(12月7日),我在新生公園亂逛、亂拍,看到新生棒球場上有人在打棒球,於是就在看台邊拍了幾張照片。

Map picture

天候狀況不錯,光線又充足,不需用很頂級的器材,就還拍得起來。我進去的時候,比賽剛進入一局下,客隊台灣師大1:0領先,我用D40x每秒三張的連拍,拍了台師大先發投手的投球動作。這種快速的連續動作,要用高階相機來拍,才比較能有好效果,D40x則是力有未逮。

打擊的時候也是一樣,想要抓到擊中球的瞬間,不僅要靠經驗,也要靠一點運氣,而連拍速度不夠,則讓這難度大大提高。

台師大先發投手壓不住陣腳,被連連擊出安打,雖然這些安打都不是很強勁,但顯然他的球並不難打,幾乎沒看過文化的球員揮過空棒。我只待了大約十分鐘左右就走人了,一局下仍在進行中……

有時候,看看這些不認識的球員打球,還蠻有趣的呢!

↓ 投球連續動作(三張而已啦!)


↓ 棒棒安打!
 

↓ 這是所拍到最接近擊中球瞬間的照片,和之後的延伸動作。

↓ 本壘前攻防戰。

↓ 又是安打!

↓ 捕手:「怎麼會這樣呢?」

↓ 壘上總是有跑者,投手投得很辛苦。

由於白天比賽的光線充足,所以大光圈的鏡頭就不是那麼必需,而且這種練習用的球場,看台離比賽場很近,我用55-200mm的焦段,勉強足夠應付。但機身強度,特別是連拍速度,在棒球賽中就顯得很重要了。D90的連拍速度是每秒4.5張,D300是8張,D3最高可達11張,專業的棒球攝影師,至少要用到D300吧!

Category: 0 意見

打高空的月亮

quill mark

據說,今晚會出現十五年來最大的月亮,確切的時間,是在13日凌晨零點37分。

我昨天大約十點的時候,跑到附近的公園,也對著天空中的一輪明月,按了好幾次快門。手上不是什麼高檔的器材,也沒什麼了不起的技術,所以不會想要去什麼著名景點去搶拍。拍攝時,月兒高掛正上空,我得躺在公園板凳上,才得以對空發射(shoot),而那時差不多正是垃圾車要來收垃圾的時候,不斷地有提著垃圾經過的鄰居,投來好奇的眼光,因此我也不好意思「躺」在板凳上太久,拍了幾分鐘後就走人了。以下是拍攝的成果:

DSC_2847_crop

這是裁切過的畫面,只有200mm的望遠,其實是不夠的……

Category: 4 意見

國祥CCD清潔記

quill mark

不知是不是我住的地方灰塵特多?總覺得我的D40x很容易入塵,前兩天檢查之下,又發現塵點,這次用吹球已經吹不掉了,於是就利用今天下午跑了國祥一趟,享受公司貨免費清理的權利。

國祥的客服部(?)在二樓,我進去後,就有一位美麗的服務小姐問我是不是有東西要送修,我告知來意後,把相機交給她,她登記了機號,問了我的聯絡電話和姓氏後(這應該只是作業的標準程序),就撥電話幫我請維修人員出來拿相機,然後請我一旁看雜誌等候。不到五分鐘,相機清理完畢,我就打道回府了。

心得:國祥維修人員很有效率,服務小姐美麗又親切,很愉快的清理經驗。國祥離我家不遠,以後應該要常常去拜訪美麗的服務小姐才對。

Category: 0 意見

MediaStream v1.00正式版

quill mark

MediaStream的開發小組Team Razorfish在12月4日於網站宣布,正式版的MediaStream v1.00已經完成,現在開放使用者下載使用。上次附在XBMC Atlantis正式版裡面的,好像是0.98 Beta版,也就是我之前貼圖所用的版本,後來曾經有0.99 Beta推出,我也下載更新,原本就想寫一點心得,但說實話,那真的就是「一點點」心得,覺得不寫也罷。現在進入v1.00正式版,大概看了一下,仍是沒什麼特別的感想。但因為這是正式版,所以我想,還是在這裡提一下,當成是訊息傳達。

我這麼說,並不是認為MediaStream沒什麼長進,而是對大部分使用者而言,這幾個版本的更新,多是一些操作介面的小改進。總而言之,這個桌面已經相當成熟,應該不會像之前的某些桌面(例如MC360)一樣,蟲子滿天飛。

MediaStream開發小組官網(首頁有下載連結):

http://www.teamrazorfish.co.uk/mediastream.html 


這次的除了正式版的推出外,也公開了來源碼。XBMC桌面,本就是透過xml檔來設定控制,平常就可以進去修修改改,所以除了程式設計者外,應該很少人會對天書般的來源碼有多大興趣。不過,因為來源碼裡,有著本Skin所使用的全部圖檔,想進一步替換桌面圖檔的人,可以試著將其改為自己喜歡的介面。圖檔所在的連結,請點這裡。texture檔的編譯方式,不知道有沒有變,我可能也要翻一下我自己的舊文,才想得起來當初是怎麼弄的。(太久沒碰了!)

Category: 6 意見

滾動吧!標籤雲! --Label Cloud Part 2

quill mark

標籤雲」或者分類標籤的功用,是要讓閱讀者方便找出類似主題的文章來閱讀,因此,它提供的是一組分類連結。

剛弄好這個Blogumus的滾動式「標籤雲」時,只顧欣賞並調整其外觀,直到放了一天之後,這才第一次點選其中的連結測試──我的媽呀!這個新完成的「標籤雲」,真的只有裝飾的功能,因為它並不能正確地搜尋出該標籤的文章,主要的原因在於,其連結的中文字,已經被轉換成了瀏覽器無法辨識的「亂碼」。

我試著用Internet Explorer 7測試,發現IE可以順利讀出連結的「怪碼」,而讓「標籤雲」正常運作,但若用我慣用的Firefox,則點選後,網址列標籤部分的中文字會變成亂碼,當然就搜尋不到任何文章。如我的分類標籤「書籍」,點選之後,網址列顯示的是:「http://fafner-hideaway.blogspot.com/search/label/%AE%D1%C4y」,這個「%AE%D1%C4y」應該是ASCII,因若是UTF-8的話,Firefox 可以辨識,也就不會有編碼上的問題。

我試了不少方式,包括從Template上自行輸入標籤網址,但只要一變成swf檔,其連結內的中文字就一定無法被讀出。我只能猜測,或許是哪個環節的JavaScript沒有用正確的編碼方式處理中文字,才導致這樣的結果。我不懂JavaScript,因此這個問題,我是無解的。

正途不行,只有改走旁門左道。這個WP-Cumulus目前釋出的版本,已經到了1.17,大約是在1.15版時,就已加入了多重顏色的功能,也是說,標籤雲裡的各個標籤,可以設定成不同大小或顏色。我所使用的www.bloggerbuster.com所發佈的Blogger版裡,是用迴路的方式自動生成標籤和連結,故無法為個別標籤加入不同的設定。要在Blogger中達成這個效果,恐怕只有用外掛xml檔的方式,而這個方式,也正好可以幫我解決中文連結的問題。

我的做法是,以\wp-cumulus\flash sources\tagcloud.xml檔為藍本(其設定的標籤,顏色和大小都不一樣),手動將其內容改成我所要的連結,再將這個修改過的tagcloud.xml檔上傳到和之前tagcloud.swf相同路徑的網路空間上,再把上篇所貼的程式碼中,關於生成標籤和標籤連結、參數的程式碼拿掉,讓tagcloud.swf去讀取同一路徑下的xml檔,這樣就可以了。

例如,我改過的tagcloud.xml,變成這樣:

<tags>
<a href="http://fafner-hideaway.blogspot.com/search/label/%E6%9B%B8%E7%B1%8D" class="tag-link-66" title="2 topics" rel="tag" style="font-size: 22pt;">書籍</a>
<a href="http://fafner-hideaway.blogspot.com/search/label/%E6%94%9D%E5%BD%B1" class="tag-link-39" title="1 topics" rel="tag" style="font-size: 18pt;">攝影</a>
.....(中省略)....
</tags>

上面的程式碼的各項參數,我只知道font-size應該是字級大小,其餘的還沒空去研究,所以就完全照抄。連結部分,因為tagcloud.xml是存成UTF-8格式,用記事本開啟時,只要從網址列複製網址,貼過來時就自動轉成 E6%9B%B8%E7%B1%8D的UTF-8碼。最後,我覺得我的標籤數目太少,而且多是中文,顯得頗為單調,所以又手動加入了一些翻成英文名的標籤連結。

而下一步,要修改貼上Template的程式碼:

<b:widget id='Label99' locked='false' title='Labels' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<script src='http://halotemplates.s3.amazonaws.com/wp-cumulus-example/swfobject.js' type='text/javascript'/>
<div id='flashcontent'>Blogumulus by <a href='http://www.roytanck.com/'>Roy Tanck</a> and <a href='http://www.bloggerbuster.com'>Amanda Fazani</a></div>
<script type='text/javascript'>
var so = new SWFObject(&quot;你上傳的網路空間/tagcloud.swf&quot;, &quot;tagcloud&quot;, &quot;240&quot;, &quot;300&quot;, &quot;7&quot;, &quot;#ffffff&quot;);
// uncomment next line to enable transparency
//so.addParam(&quot;wmode&quot;, &quot;transparent&quot;);
so.addVariable(&quot;tspeed&quot;, &quot;100&quot;);
so.addParam(&quot;allowScriptAccess&quot;, &quot;always&quot;);
so.write(&quot;flashcontent&quot;);
</script>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>

欄位大小(240,300)、背景顏色(ffffff)和背景是否要透明,這和之前的修改方式一樣;至於標籤字的顏色和級數,以及獲取標籤連結的程式碼,因已在xml檔內設定,在此我就將之刪掉,以免xml的設定發生不了作用。修改後的顯示效果,會類似我現在側邊欄Label Cloud上的一樣(我的欄寬欄高,都設成150,背景設為透明)。

這個中文化的動態「標籤雲」,絕大部分是用手動的方式硬修出來的,我用Internet ExplorerFirefox測試,都能正確連上該分類標籤的文章,使用上大致沒有問題。缺點是,若日後新增分類標籤時,那就得把之前手動修改的部分全部重做:重新在Flash 9裡embed新的字元、輸出新的tagcloud.swf、在tagcloud.xml中新增新的標籤連結、將這兩個檔上傳取代舊檔。可說是牽一髮而動全身。唉,早知道中文化這麼麻煩,我當初就不會一頭栽進來!

Category: 2 意見

滾動吧!標籤雲! --Label Cloud Part I

quill mark

標籤雲」(Label Cloud, or Tag Cloud)這玩意兒,我向來沒啥興趣,因為:一、「標籤雲」要好看,你網頁的標籤數目要適中,太少的話,雲朵兒只是點綴,太多的話,雲層過厚,又變成一大片烏雲。二、標籤的字數要長短不一,太過規則的話,反倒達不到效果。三、採用預設的中文字型太難看,放大的細明體,就如同我現在文章的標題,醜陋得要死,內文字還勉強忍受,用這種難看的字當標題,我是能避免就避免。

我的標籤太少,又都命名為精簡的兩個字,而字型的問題又無法克服,所以,我一直沒有嘗試來弄。我的「偏見」是,「標籤雲」要英文字才好看;也唯有用英文來命名標籤,「標籤雲」才會如同天空中的雲朵,有著遠近相間、層層交疊的效果。

但就在幾天前,偶然間發現一種以Flash做成的新式「標籤雲」(好像是叫:WP-Cumulus),效果炫,並且已經有Blogger版,不費什麼功夫,就可以放上Blogger使用。心想:「那就試看看吧!」怎知這一試,就是賠上好幾天的美好時光。

↓ 下圖取自 www.bloggerbuster.com

最先參考的,是Blogger Buster這個網誌,按照其中的教學,很快就弄好了。方法如下(以下是以該網誌提供的教學改寫):

首先,進入Blogger後台的「版面配置」->「修改HTML」,記得要「展開小裝置範本」,在一堆原始碼裡,找到:「<b:section class='sidebar' id='sidebar' preferred='yes'>」這個程式碼(依每個人使用的Template不同,可能會有不同的程式碼,基本上,就是「側邊欄」sidebars開始的地方),在其下方,貼上以下這段程式碼:

<b:widget id='Label99' locked='false' title='Labels' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<script src='http://halotemplates.s3.amazonaws.com/wp-cumulus-example/swfobject.js' type='text/javascript'/>
<div id='flashcontent'>Blogumulus by <a href='http://www.roytanck.com/'>Roy Tanck</a> and <a href='http://www.bloggerbuster.com'>Amanda Fazani</a></div>
<script type='text/javascript'>
var so = new SWFObject(&quot;http://halotemplates.s3.amazonaws.com/wp-cumulus-example/tagcloud.swf&quot;, &quot;tagcloud&quot;, &quot;240&quot;, &quot;300&quot;, &quot;7&quot;, &quot;#ffffff&quot;);
// uncomment next line to enable transparency
//so.addParam(&quot;wmode&quot;, &quot;transparent&quot;);
so.addVariable(&quot;tcolor&quot;, &quot;0x333333&quot;);
so.addVariable(&quot;mode&quot;, &quot;tags&quot;);
so.addVariable(&quot;distr&quot;, &quot;true&quot;);
so.addVariable(&quot;tspeed&quot;, &quot;100&quot;);
so.addVariable(&quot;tagcloud&quot;, &quot;<tags><b:loop values='data:labels' var='label'><a expr:href='data:label.url' style='12'><data:label.name/></a></b:loop></tags>&quot;);
so.addParam(&quot;allowScriptAccess&quot;, &quot;always&quot;);
so.write(&quot;flashcontent&quot;);
</script>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>
需要自我調整的地方,我已經用紅字標出。以上的例子來說,240是寬,300是高,ffffff是背景顏色(白),333333是標籤字的顏色(灰),最後一個style='12'的12,則是標籤字的大小級數。另外,如果你希望「標籤雲」的背景是透明的(和我網誌上的一樣),那就得把「//so.addParam(&quot;wmode&quot;,&quot;transparent&quot;); 」這裡的「//」符號給拿掉。

很簡單吧!如果你有先見之明,把你所有的標籤都取成英文名,那到這裡就可以收工了。但是,如果你的標籤是中文(如我一樣)的話,那這只是一個開始!真正麻煩的,還在後頭。

若我的標籤全都是中文,那我在完成上述步驟之後,看到的將是一片空白,那我會以為這又是個不適用於我模板(Template)的Hack而放棄。壞就壞在我有一個「XBMC」的標籤,所以我看到的,是一整片空白之中,有個孤獨、渺小的「XBMC」在那兒無助地晃呀晃。這表示,這個Hack是可用的,只是需要「中文化」。

要「中文化」,當然得多參考一些東西。原作者Roy Tanck的網誌裡,關於這方面的文章有:How to Add More Characters to WP Cumulus,和About WP-Cumulus in Chinese

以我粗淺的理解,這個在Blogger之下以Flash生成的「標籤雲」,是在模板裡加入JavaScript,藉以組織出網誌裡頭的標籤、標籤連結和相關參數,再連接網路上的swfobject.js以及已經事先製作完成的範例檔tagcloud.swf,才產生這個動態的標籤雲。

swf檔可自帶編碼和字型,而範例檔tagcloud.swf所帶的,是最平常的拉丁編碼和Arial字型。因此,我們要中文化,就得生成內嵌有中文字型的範例檔,以供自己的網誌使用。

但中文字「博大精深」,拉丁字母大、小寫加上必要符號,只要幾十個字就搞定;而最常用的中文字,怎麼算都好幾千,所以夾帶中文字型,必造成範例檔過於肥大(可能有好幾十MB),根本就不切實際。

為此,我先想到的,是自製一個小字型檔。這不是很困難,我用Font Creator這個軟體,以英文的Stencil Std為本,加上從魏碑體字型中複製過來的約二十四個中文字(我全部標籤所用到的字),做了一個我取名為Fafner.ttf的字型檔,然後依照How to Add More Characters to WP Cumulus的方式輸出新的tagcloud.swf檔,卻發現,這個新範例檔依然有二十幾MB!可見我的方向弄錯了,要控制swf檔的大小,不是靠字型,是要看包進swf檔裡的字元數(characters)。

正確的方式為:

先到這裡下載WP-Cumulus的Development Version,解壓後,用Flash 9(CE2或3)開啟 \wp-cumulus\flash sources\tagcloud.fla,將游標點到左上方的Tag,字會被文字框框起,下方的狀態列,則出現文字選項。選擇一個你要用的中文字型(如:王漢宗超明體繁),接著,重要的來了,要點選embed嵌入字元,如果你去選任何中文編碼(最少的有五千多字),那就會和我上述的一樣,合出一個20幾MB的swf出來。在此,點選必要的英文字和符號即可,為了不讓swf檔肥大,我們只用手動的方式,於include these characters欄中,鍵入所用的標籤字,請見真相:

tagcloud_1

接下來,要去修改wp-cumulus\flash sources\com\roytanck\wpcumulus\Tag.as,以記事本將檔案開啟,找出「format.font = "Arial";」這串字,將其改為你選用的字型名稱(如:format.font = "王漢宗超明體繁";)檔案儲存後,回到Flash 9,按Ctrl+Enter,就會開始輸出新的tagcloud.swf檔(我的新tagcloud檔約32 KB)。

新的tagcloud.swf會存在flash sources資料夾內,請不要和wp-cumulus資料夾裡的檔搞混。將這個新的tagcloud.swf上傳至可供外連的空間,然後把上面要貼上Template的程式碼中,那個指向範例tagcloud.swf的連結(藍色部分),改成你上傳新檔的連結,這樣就算完成了。

我做到此,已經可以在網頁上看到滾動的中文「標籤雲」,原以為從此就過著幸福快樂的生活,卻沒想到,天空中的那片「標籤雲」,還是投映不到我網誌的波心!這個剛完成的「標籤雲」,只是空有其表而已。

欲知後續詳情,請見Part 2...…

Category: 15 意見