2017-06-27 60 views
0

我使用calyer的renderInContext來創建一個捕獲到imageView,但我發現它失去了質量。我錯在哪裏?iOS:使用calyer renderInContext捕獲imageview丟失質量

代碼: enter image description here

結果: enter image description here

編輯:

上述圖像通過與aspectFill和clipToBounds contentMode一個ImageView的顯示。

下面的圖片是由我給的代碼處理的,實際上,我只是想將圖片剪裁成與contentMode爲aspectFill的imageView相同的尺寸,所以我不需要clipToBounds來引起offscreen-rendering

+0

質量損失在哪裏?底部圖像的質量實際上更好(下標更平滑)。 – deadbeef

+0

如果要實現頂部圖像的相同「清晰」結果,請嘗試降低上下文的插值質量。 – deadbeef

+0

此外,在調整圖像大小時,應該直接使用圖像本身(使用其「draw」方法)而不是繪製imageView圖層。 – deadbeef

回答

0

根據@deadbeef的評論,底部圖像的質量實際上更好(下標比較平滑),我不知道爲什麼,並且如他所建議的,嘗試降低上下文的插值質量if您希望獲得頂部圖像的相同「銳利」結果。

context.interpolationQuality = .low

我把它改成低,和它的工作!