PNG 現況整理...

Does PNG work everywhere?」這篇文章把 PNG 的現況整理成表格,並且附上不少圖片範例可以看。表格包括在處理圖片常用的 Photoshop 軟體,以及常見的問題瀏覽器 IE 各版本。

如果不牽扯到 Gamma correctionICC profileMozilla FirefoxSafari (包括行動版本) 以及 Opera 對於不同格式的 PNG 都沒有什麼問題... 就這部份的結論是,IE6 只能用最基本的 PNG 格式,但如果同意讓 IE6 看到比較差的效果 (不是看不到),不少格式可以用。

另外作者也不斷地再推廣使用 PNG 最佳化程式處理 PNG 檔,以節省空間。文章後面的 Troubleshooting 以及 Summary 章節很值得仔細看過一次,在腦袋裡面留下印象...

露天拍賣的圖片自動展開程式 (Firefox、Google Chrome、Greasemonkey)

露天拍賣的圖片是等到有用到時才會讀進來,這其實對於用 tab 用習慣的我不太方便,因為我會在搜尋頁一次開完,然後一個一個看。這樣的好處是不需要等讀片讀入的時間...

我只在 Firefox + Greasemonkey 上測試過,不過因為程式很簡單 (只有一行),理論上在 Google Chrome 上應該也可以用。

程式在「Ruten Images Autoloader」,請測試給意見囉...

Google 發佈 WebP,號稱比 JPEG 更好的圖片壓縮格式...

Google 剛剛發表了 WebP,一個從 VP8 擷取出來的圖片壓縮格式:「WebP, a new image format for the Web」。

以 Google 的說法,從網路上隨機抽一百萬張圖片測試,原先使用 JPEG、PNG、GIF 壓縮的圖片,改用 WebP 後可以節省 39% 的空間。但這邊沒有提到測試的細節,像是壓縮後的品質,以及這一百萬張圖片是如何取樣...

雖然在官方網站上有「Sample image files in JPEG and WebP」可以看,但比較奇怪的是,Lenna 居然沒有列出來,這幾乎是圖片壓縮的必測項目?

目前的 WebP 只是先從 VP8 抽出來而已,還沒有加到 Google Chrome 裡,不過就網頁上的說明,已經在計畫了。

測試 wkhtmltoimage 的效果

在「FreeBSD 上使用 wkhtmltopdf 做網頁擷取」看到有人在 FreeBSD 上用 Linux emulator 跑 wkhtmltopdf 成功,那麼 Linux 上當然更沒問題啦...

同一個計畫裡有 wkhtmltoimage,可以直接輸出成 PNG 格式,不過輸出的 PNG 沒有壓縮過 (應該吧,下面這張測試的原始輸出是 ~10MB,處理後是 ~500KB),要用 pngcrush 處理後才會比較小。

不過 PIXNET 的網頁都會 segmentation fault 是怎樣 XD

Update:在「Segmentation fault while generating http://www.pixnet.net/」這邊回報後,trunk 版修正了。

wkhtmltoimage 輸出結果在這,點下去會出現原圖:

之前透過 Firefox 的方法的輸出結果,點下去會出現原圖:

可以看出來字體的部份有差... 不過處理的速度與方便度比 Firefox 好太多了。

在 Linux 上架設 Screenshot Service (2010 年了?)

在 2008 年的時候 xdite 寫過一篇「在 Linux 上架設 Screenshot Service」,不過現在是 2010 年了,不少當初有問題的地方都已經改善了,現在要架比之前方便不少...

測試的平台同樣是在 Linode (referral code 是 fdbacc96dbddafce9ba444dd678357416d0323d5) 上跑 Debian lenny (也就是 5.0 版),為了避免 Adobe Flash PlayerLinux amd64 上會出問題,我在 Linode 上用 32bits 版。

Linode 把預設的 Debian 裝完後,先把整個系統升級到 Debian squeeze 並且重開,然後先裝「locales」這個套件,再用 dpkg-reconfigure locales 把 en_US.UTF-8 以及你自己會用到的 locale 勾起來。

接著開始裝必要的套件:

  • flashplugin-nonfree
  • iceweasel
  • ttf-arphic-bkai00mp
  • ttf-arphic-bsmi00lp
  • ttf-arphic-gbsn00lp
  • ttf-arphic-gkai00mp
  • ttf-arphic-ukai
  • ttf-arphic-uming
  • ttf-wqy-zenhei
  • xvfb

Iceweasel 其實就是 Firefox,因為商標問題而在 Debian 上有不同的名字。在英文版維基百科的「Mozilla Corporation software rebranded by the Debian project」這篇文章裡把前因後果講得很清楚,這邊就不提了...

除了必要的套件外,接下來裝 TightVNC server,準備透過 VNC 設定 Iceweasel。設完後可以移除掉或是留下來,我自己是留下來 (反正檔案不大),有時候可能要進去 about:config 調整參數...

TightVNC server 用 tightvncserver :0 跑起來,然後遠端連進去把 Iceweasel 跑起來測試看看有沒有問題 (可以透過 PuTTY 的 tunnel 將傳輸過程加密),沒有問題的話就裝「torisugari: Command Line Print」這個套件,裝好後再把 Xvfb 跑起來,用這個指令抓圖:

DISPLAY=:2.0 iceweasel -print http://zh.wikipedia.org/ -printmode png -printfile ~/zh.wikipedia.org.png -printdelay 10

抓出來的 screenshot 就會像這樣:(點這裡看原大小圖片)

Flash 也沒問題:(點這裡看原大小圖片)

比起之前的方法,現在的方案有兩個好處:首先是 plugin 是照正規方法裝進去,而不是直接丟 xpi,可以避免遇到奇怪的靈異現象時懷疑是不是安裝時硬塞造成的。再來是 Iceweasel 會在抓完就 shutdown,所以在網路速度夠快的時候可以提前結束,而網路不夠快時也不用擔心抓到未完成圖...

當然剩下有很多細節要處理啦,不過那是另外一回事了...