big5-ansiart
big5-ansiart copied to clipboard
[未完成] 轉用 Cairo + Pango
注意,未完成,請先不要 Merge。
一時興起,決定玩玩看用 Cairo 會不會更快(因為知道 RMagick 只會更慢) 結果十分漂亮,轉用 Cairo 之後速度至少快一倍.....
大概改出了一個能用的版本,送 Pull Request 是希望能得到大家的意見 :)
好處:
- 方便引用 fontconfig
- 更好的效率
壞處:
- Cairo + Pango + GLib 好大一包
- Pango 不允許外接字體檔(一定得用 fontconfig 有的字體)
- 由於 rcairo 不支援 Unbounded Recording Surface,目前最大高度的限制寫死在10 page(230行)
待修改事項:
- 字體的大小怪怪的(應該是 DPI 問題,還沒找到解法。如果捨棄 Pango 只用 Cairo 的文字繪製會更好嗎?)
- @drift 現在是爛掉的(設了之後圖會篇掉,應該是改錯)
Benchmark.rb 參考用: https://gist.github.com/3437891
Benchmark 比較,以 http://ansi.loli.tw/ansiarts/2179 為例(on My Mac):
$ bundle exec ruby generate.rb user system total real GD2 4.270000 0.060000 4.330000 ( 4.532901) Cairo 0.800000 0.060000 0.860000 ( 1.033430)
聽來不錯,不過我正在日本旅遊,下週才能細看,sorry
Hsiao-Ting Yu 於 2012年8月24日星期五寫道:
注意,未完成,請先不要 Merge。
一時興起,決定玩玩看用 Cairo 會不會更快(因為知道 RMagick 只會更慢) 結果十分漂亮,轉用 Cairo 之後速度至少快一倍.....
大概改出了一個能用的版本,送 Pull Request 是希望能得到大家的意見 :)
好處:
- 方便引用 fontconfig
- 更好的效率
壞處:
- Cairo + Pango + GLib 好大一包
待修改事項:
- 字體的大小怪怪的(應該是 DPI 問題,還沒找到解法。如果捨棄 Pango 只用 Cairo 的文字繪製會更好嗎?)
- @drift https://github.com/drift 現在是爛掉的(設了之後圖會篇掉,應該是改錯)
Benchmark.rb 參考用:
https://gist.github.com/3437891
You can merge this Pull Request by running:
git pull https://github.com/littlebtc/big5-ansiart cairo
Or view, comment on, or merge it at:
https://github.com/albb0920/big5-ansiart/pull/4 Commit Summary
- WIP PNG Cairo Converter.
- Update README
File Changes
- M README.md (11)
- M ansi_art.gemspec (2)
- M lib/ansi_art.rb (1)
- M lib/ansi_art/document.rb (4)
- A lib/ansi_art/png_cairo_converter.rb (160)
Patch Links
https://github.com/albb0920/big5-ansiart/pull/4.patch
https://github.com/albb0920/big5-ansiart/pull/4.diff
— Reply to this email directly or view it on GitHubhttps://github.com/albb0920/big5-ansiart/pull/4.