2009/7/24

顛覆網路 35 天:SVG + Video = 滾筒洗衣機!

這一篇,我們將再度見識混搭網際標準時可以展現的效果,先來看看範例:

View the Demo in Firefox 3.5 tristan

這個範例中,我們在 SVG 文件裡塞了個 HTML 5 的 VIDEO 標籤。以下是精簡過的程式碼:

<svg:svg xmlns:svg="http://www.w3.org/2000/svg"
               width="194" height="194">
  <svg:foreignObject x="1" y="1" width="192" height="192">
    <html:video src="tristan3.ogv" ontimeupdate="rotateMePlease()"/>
  </svg:foreignObject>
</svg:svg>

播放鈕什麼的也是用 SVG 做的喔!此外這範例裡也利用了 Firefox 3.5 中的 CSS 套用 SVG 濾鏡功能,如下:

#video {
    filter: url(#filter);
    clip-path: url(#circle);
}

這個 clip-path 特性能為任何元素 (html、svg 等) 定義裁切路徑,可以是任何以 SVG 繪製好的路徑,超強的喔!例如本例裡的 #circle 路徑原始碼如下:

<svg:clipPath id="circle" clipPathUnits="objectBoundingBox">
   <svg:circle cx="0.5" cy="0.5" r="0.5"/>
</svg:clipPath>

而 filter 特性則能定義 SVG 濾鏡,本例裡我們採用的是 feColorMatrix

<svg:filter id="filter">
  <svg:feColorMatrix values="0.3 0.3 0.3 0 0 0.3 0.3 0.3 0 0 0.3 0.3 0.3 0 0 0 0 0 1 0"/>
</svg:filter>

影片播放後,我們利用 transformation 來讓影片元素旋轉:

function rotateMePlease() {
    // Sure
    if (!video) return;
    video.style.MozTransform='rotate(' + i + 'deg)';
    i += 3;
}

作者 Paul 把所有程式定義在 XHTML 文件中,並且處處使用良好的 XML 語法及名稱空間,不過你可能會想在 HTML 文件中使用一樣的效果。Firefox 3.5 裡可以參照外部 SVG 文件,你就不必把原本的 HTML 整個轉化為 XHTML 了:

.target { clip-path: url(resources.svg#c1); }

從這個範例裡你可以看到混搭 SVG、HTML、VIDEO 及 CSS 的威力,好好玩喔!

2009/7/17

顛覆網路 35 天: 色彩校正

是的我拖稿

說到色彩校正 (Color Correction) 功能,其實在 Firefox 3 時已經有基本的支援,只是預設是關閉的;Firefox 3.5 裡將校正的速度提升到 Firefox 3 的 5 倍快,也終於預設就開啟這項功能。現在就來看看色彩校正的威力:

不過網路上大部分的照片都沒有色彩校正資訊,所以其實你不見得可以感受得到差別就是。無論如何,多學習一下相關的知識也不壞囉!

所以色彩校正是啥?

如果你花很多時間在照相或影像處理等相關的事務上,那應該知道同樣的色彩在不同的輸出設備 (LCD 螢幕、CRT 螢幕、印表機等等) 上表現可能略有差異。JPG 跟 PNG 檔都支援色彩設定資訊,這些資訊可以幫助 Firefox 依據設備特性而顯示出正確的顏色;除了媒體檔本身之外,顯示設備也有自己的特性。假若某顯示裝置展示紅色的能力較展示藍色更為優秀,那麼這項裝置上的紅色 #ff0000 可能就要設定成 #f40301 才能顯示得跟螢幕一樣。總之這告訴我們,設備跟媒體檔案之間可能要經過兩次轉換才能顯現出正確顏色:一次先依據檔案本身所帶的色彩資訊、第二次則是依據設備的色彩資訊進行轉換。

所以,這關 CSS 什麼事?

網頁設計的世界中常會有需要搭配圖片及 CSS 混合排版的情形,如果你想要在圖片中繪上某個顏色、然後在與其搭配的 CSS 裡也指定一樣的色彩,或許實際出現的情形並無法如你所願 —— 因為 Firefox 裡會讓圖片經過色彩校正程序、但卻不處理 CSS,於是你看到的圖片經過校色之後、看起來跟 CSS 所設定的顏色就不見得相同,以下面這段紫色區塊為例:

在 Firefox 3 裡,你會看到一個紫色的長方形;在 Firefox 3.5 及 Safari 中,你看到的則是一個紫色邊框包覆著另一個紫色長方形 (除非你的系統色彩資訊為 sRGB 模式)。這是因為上方形成長方形的圖片部份經過色彩校正、而 CSS 部份則無。

未來的 Firefox 裡將讓使用者同時為圖片及 CSS 開啟色彩校正功能,這功能現在就可以依照 Mozilla Developer Center 上的說明來試試看,只要將色彩校正切換為「完整色彩管理」模式即可。

圖片格式支援與相關工具

PNG 檔的色彩資訊可以用三種不同方式標註:首先,可以利用 iCCP 區段嵌入 ICC 資訊;第二,可以利用 sRGB 區塊將圖片明確指定為以 sRGB 模式處理;最後,您還可以嵌入 gAMA 及 cHRM 資訊,描述圖片的 gamma 及亮度值等。這三種方式都可以讓 Firefox 利用色彩校正功能調整圖片色彩。

此外,您也可以利用 pngcrush 來移除所有色彩資訊,讓圖檔恢復為未標註的樣子:

pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB infile.png outfile.png

您也還可以利用 TweakPNG 手動刪除這些資訊。

2009/7/9

其實低調也不錯

到時候就是 25 個人分一些有的沒的小禮物,這些是一部份:

SANY1046.JPG

據說還有 3 個位子,然後今天 (7/9) 晚間報名截止這樣。

2009/7/5

顛覆網路 35 天: HTML 5 版音樂播放器

很久沒翻譯這系列文章,我發現米嘉也富奸化了… 不過他畢竟是比我維持得更久點,翻譯這類文章真的很考驗毅力的啊,大家要多給義務幫忙翻譯引介資訊的人一點鼓勵。

這篇文章裡討論的是利用 HTML 5 的 audio 標籤與 JavaScript 合作製作一個音樂播放工具,其實 WM 在之前也為 MozTW 製作了一個更炫的、所以害我每次看到這篇都沒什麼毅力翻譯… (藉口藉口!) 反正,先看看完成圖吧!

這個範例還是很有價值的,相較於 WM 的炫爆範例,本例的作者採用了有趣的方式來實作:

<div id="jai">

  <canvas id="jai-transport" width="320" height="20"></canvas>
  <ul class="playlist">

    <li>
      <a href="@F1LT3R - Cryogenic Unrest.ogg">
        F1LT3R - Cryogenic Unrest
      </a>
      <audio src="@F1LT3R - Cryogenic Unrest.ogg"/>.
    <li>

      <a href="@F1LT3R - Ghosts in HyperSpace.ogg">
        F1LT3R - Ghosts in HyperSpace
      </a>
      <audio src="@F1LT3R - Ghosts in HyperSpace.ogg"/>.       
  </ul>    

</div>

原始範例裡的程式碼有包含 Fallback 功能而且比較複雜一點,這裡把程式碼簡化比較容易說明。你發現了嗎?清單中所有音樂項目都只是由 HTML 的列表加上 CSS 樣式展現的,每個項目都與一般 HTML 頁面的連結一樣,可以加入書籤、複製連結位置等等。JavaScript 程式會找出 ID 為jai 之 DIV 標籤中所有的 AUDIO 標籤,接著又以 SVG 加上 JavaScript canvas 的方式繪製出操作介面

用這個方法要加入新樂曲相當方便,且要在任何網站上放入這個播放器也十分容易 —— 定義一個 canvas 與列表就可以了。(相應的 JavaScript 當然要嵌入囉)

附帶一提的是,這個網頁上不但有原作者的說明,連所有的音樂也都是他自己寫的… 這也太猛了吧 XD

Firefox 3.5 台中迷你趴

依照往例,MozTW 只有在大版本更新的時候會辦 Firefox Party,這次 3.5 推出也不例外。不過一方面有社群成員建議還是辦個交流性的小聚會,另一方面 Mozilla 也有準備紀念品送給各地區的派對活動,所以就讓我們在台中聚會一下吧!

  • 時間: 7/11 14:00-16:30-18:00 (後一半是自由交流時間)
  • 地點:默契咖啡 (台中市中港路二段60-3號)
  • 費用: 活動本身免費,低消、餐點等自費 (吃喝大概是 150-200 間)
  • 限額:只有 25 個位子,要報要快喔!

場地有免費網路、插座,歡迎帶筆電來。內容除了分享與交流外,當然也有很多雜七雜八的小禮物會送給參加者。報名及詳細資訊請見報名網頁

2009/7/1

兩小時後,知床大地震!

你裝 Firefox 3.5 了嗎?如果你是從 Firefox 3.x 甚至 2.x 版跳上來的使用者,想必有感覺到速度上的提昇。因應 Firefox 3.5 的 Codename —— Shiretoko (知床),Mozilla 這次也準備了有趣的行銷活動「Shiretoko Shock」,邀請各位社群伙伴一起撼動這個世界!

怎麼玩呢?超簡單:只要你在當地時間下午 3:50 分時,上 Twitter、Plurk、Facebook 等地方邀請你的朋友們一起下載 Firefox 就可以囉!以下是一些簡單的範例句:

撼動全世界!現在就下載 Firefox 3.5: http://bit.ly/shiretokoshock-tw #fx35

(我要推這句 | 我要撲這句)

Shock with me!現在就下載 Firefox 3.5: http://bit.ly/shiretokoshock-tw #fx35

(我要推這句 | 我要撲這句)

YouはShock!馬上下載爆強爆快的 Firefox 3.5: http://bit.ly/shiretokoshock-tw #fx35

(我要推這句 | 我要撲這句)

最後一句的梗不曉得有多少人會看懂 (汗) 當然你也可以自己編寫有自我風格的詞句,只要別忘了在最後加上「http://bit.ly/shiretokoshock-tw」的網址及「#fx35」標籤;此外也不必擔心時差問題,只要在自己所屬時區的下午 3:50 「Shock」一下就行了!

從巴西時間起,每個小時都將有一次發生在世界不同時區的 Shiretoko Shock,大家一起製造知床大地震吧!

另外在台灣時間的 7/2 半夜 2:50a 其實還有一次全球的 Super Shock,這個就不邀請大家參加了 XD 夜貓子們自己參考吧 :P