big5-ansiart icon indicating copy to clipboard operation
big5-ansiart copied to clipboard

[未完成] 轉用 Cairo + Pango

Open littlebtc opened this issue 12 years ago • 2 comments

注意,未完成,請先不要 Merge。

一時興起,決定玩玩看用 Cairo 會不會更快(因為知道 RMagick 只會更慢) 結果十分漂亮,轉用 Cairo 之後速度至少快一倍.....

大概改出了一個能用的版本,送 Pull Request 是希望能得到大家的意見 :)

好處:

  1. 方便引用 fontconfig
  2. 更好的效率

壞處:

  1. Cairo + Pango + GLib 好大一包
  2. Pango 不允許外接字體檔(一定得用 fontconfig 有的字體)
  3. 由於 rcairo 不支援 Unbounded Recording Surface,目前最大高度的限制寫死在10 page(230行)

待修改事項:

  1. 字體的大小怪怪的(應該是 DPI 問題,還沒找到解法。如果捨棄 Pango 只用 Cairo 的文字繪製會更好嗎?)
  2. @drift 現在是爛掉的(設了之後圖會篇掉,應該是改錯)

Benchmark.rb 參考用: https://gist.github.com/3437891

littlebtc avatar Aug 23 '12 16:08 littlebtc

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)

littlebtc avatar Aug 23 '12 16:08 littlebtc

聽來不錯,不過我正在日本旅遊,下週才能細看,sorry

Hsiao-Ting Yu 於 2012年8月24日星期五寫道:

注意,未完成,請先不要 Merge。

一時興起,決定玩玩看用 Cairo 會不會更快(因為知道 RMagick 只會更慢) 結果十分漂亮,轉用 Cairo 之後速度至少快一倍.....

大概改出了一個能用的版本,送 Pull Request 是希望能得到大家的意見 :)

好處:

  1. 方便引用 fontconfig
  2. 更好的效率

壞處:

  1. Cairo + Pango + GLib 好大一包

待修改事項:

  1. 字體的大小怪怪的(應該是 DPI 問題,還沒找到解法。如果捨棄 Pango 只用 Cairo 的文字繪製會更好嗎?)
  2. @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.

albb0920 avatar Aug 23 '12 16:08 albb0920