使用OC進行iOS截圖,同時保證清晰度

2021-07-27 09:11:50 字數 963 閱讀 7779

一般情況下我們使用如下**進行截圖:

uigraphicsbeginimagecontext(screenwindow.frame.size);

[screenwindow.layer renderincontext:uigraphicsgetcurrentcontext()];

uiimage *screenimage = uigraphicsgetimagefromcurrentimagecontext();

uigraphicsendimagecontext();

但是會發現獲取的截圖模糊,不如系統截圖清晰。

我們需要關注下這個方法:

uigraphicsbeginimagecontextwithoptions(cgsize size, bool opaque, cgfloat scale)

其中,scale是縮放因子。在uigraphicsbeginimagecontext方法中,縮放因子預設是1.0。

之所以生成的不清晰,問題就出在scale上。retina螢幕的實際畫素是邏輯畫素的兩倍,plus是三倍,所以我們需要手動指定scale。

1、我們可以使用0.0,0.0的意思就是自動調整縮放因子以適配顯示屏。

2、問你可以使用[uiscreen mainscreen].scale這個值來動態指定當前裝置的縮放因子。

正確的截圖**如下:

uigraphicsbeginimagecontextwithoptions(screenwindow.frame.size, no, [uiscreen mainscreen].scale);

[screenwindow.layer renderincontext:uigraphicsgetcurrentcontext()];

uiimage *screenimage = uigraphicsgetimagefromcurrentimagecontext();

uigraphicsendimagecontext();

iOS截圖功能

ios的截圖功能可以將當前介面中的ui元素儲存成uiimage。uiimage captureimagefromview uiview view 對於ios7以後的系統,還可以通過系統提供的api uiview的例項方法 uiview snapshotviewafterscreenupdates b...

iOS截圖功能

ios的截圖功能可以將當前介面中的ui元素儲存成uiimage。uiimage captureimagefromview uiview view 對於ios7以後的系統,還可以通過系統提供的api uiview的例項方法 uiview snapshotviewafterscreenupdates b...

iOS截圖規範

內容來自蘋果幫助文件 裝置尺寸或平台 截圖尺寸 要求截圖源 6.5 英吋 iphone 11 pro max iphone 11 iphone xsmax iphone xr 縱向解析度為 1242 x 2688 畫素 橫向解析度為 2688 x 1242 畫素 上傳 6.5 英吋截圖 5.8 英吋...