2011-04-16 42 views

回答

19

雖然這是一個老問題,我最近做了一些關於CGContextSetInterpolationQuality的效果的基準,並認爲它的結果可能是有趣的索姆一個人。

在我的基準測試中,我繪製了一組6個不同的649x649 b位圖圖像來構建一組12個不同的拼圖拼圖。位圖圖像按比例縮小5.0(即至129.8×129.8),以使它們適合320×480顯示器(以視網膜顯示比例)。

在第4代iPod touch上運行時間,由儀器報告,有以下幾種:

  • kCGInterpolationLow:969毫秒

  • kCGInterpolationMedium:1690毫秒

  • kCGInterpolationHigh:2694 msec

  • kCGInterpolationNone:545msec

至於視覺效果,如果您比較高或中到低或無,差異是驚人的。國際海事組織甚至可以注意到無與低之間的區別;而高等和中等之間的差異在這個特定的測試中並不特別明顯。很明顯的是運行時間的差異,所以在我的情況下,我最終使用kCGInterpolationMedium

kCGInterpolationNone

enter image description here

kCGInterpolationLow

enter image description here

kCGInterpolationMedium

enter image description here

kCGInterpolationHigh

enter image description here

+0

我最終使用'kCGInterpolationHigh'就像雜誌一樣。感謝您的解釋。 – Hisenberg 2013-03-04 12:40:08

1

方法

void CGContextSetInterpolationQuality (CGContextRef c, CGInterpolationQuality quality);

影響石英渲染圖像劃分成CGContext的方式。例如,當源圖像大於或小於目標位圖CGContext時進入遊戲。

要準確地回答你爲什麼看不到任何noticable差的問題,我需要了解的確切用法,圖像大小,背景類型等

更多的細節究竟是什麼插值方法不同質量水平封面似乎沒有記錄。但是從我身邊一個猜測是:

  • 低:最近鄰插值
  • 介質:線性或雙線性插值
  • 高:二次或雙三次插值

問候

+1

但是這是'kCGInterpolationNone'?我認爲它應該是最近的鄰居 – zxcat 2013-05-26 07:41:40