PHImageManager.default().requestImage(for: asset, // 取得したい Asset を設定
targetSize: CGSize(width: 250.0, height: 250.0),
contentMode: .aspectFit,
options: nil,
resultHandler: { (image, info) in
// 取得処理完了
PHImageManager
.
default
(
)
.
requestImage
(
for
:
asset
,
// 取得したい Asset を設定
targetSize
:
CGSize
(
width
:
250
.
0
,
height
:
250
.
0
)
,
contentMode
:
.
aspectFit
,
options
:
nil
,
resultHandler
:
{
(
image
,
info
)
in
// 取得処理完了
}
とても使えないレベルww
サイズが小さすぎたのかと思い、倍の 500.0 にしてみるも変わらず。
調べてみると、PHImageRequestOptions を設定しましょうと StackOverflow 先生が教えてくれました。
PHImageRequestOptions を調べると、deliveryMode という画像をどういう画質で渡すか設定できるものが Enum で定義されていて、opportunistic、highQualityFormat、fastFormat の3つあります。
読んだ通りなので詳細は割愛しますが、以下のように設定しただけで綺麗な画像が取得できなりました。
let options = PHImageRequestOptions()
options.deliveryMode = .highQualityFormat
PHImageManager.default().requestImage(for: asset, // 取得したい Asset を設定
targetSize: CGSize(width: 250.0, height: 250.0),
contentMode: .aspectFit,
options: options,
resultHandler: { (image, info) in
// 取得処理完了
let
options
=
PHImageRequestOptions
(
)
options
.
deliveryMode
=
.
highQualityFormat
PHImageManager
.
default
(
)
.
requestImage
(
for
:
asset
,
// 取得したい Asset を設定
targetSize
:
CGSize
(
width
:
250
.
0
,
height
:
250
.
0
)
,
contentMode
:
.
aspectFit
,
options
:
options
,
resultHandler
:
{
(
image
,
info
)
in
// 取得処理完了
}
東京で6年ほど iOSアプリの開発をして、今は実家に戻って介護&リモートで開発しています o(・_・)9
個人的なアプリ開発ではライトアプリを3つほど。
スマホ、ガジェット大好き ٩( ‘ω’ )و
UI/UXのデザイン系も興味あるマン。