2015-01-20 2 views
0

사진 작업을 사용하여 iOS 신속한 이미지를 처리하고 있습니다. PHImageManager.defaultImanager(). requestImageForAsset()을 사용하여 이미지를 가져 오려고하면 대부분의 이미지에서 정상적으로 작동합니다. 이 함수는 두 개의 값, 즉 하나는 스케일 1이고 다른 하나는 스케일 2입니다. 스케일 1의 이미지는 고해상도 이미지이고 스케일 2의 이미지는 저해상도 이미지입니다. 그러나 이미지 중 일부는 저해상도 이미지 만 반환합니다.PHImageManager.requestImageForAsset는 iOS 스위프트에서 저해상도 이미지를 반환합니다.

모든 PHAsset에 대해 고해상도 이미지를 얻는 방법을 아는 사람이 있습니까? 여기

내 코드입니다 : 그것은

var targetSize:CGSize = CGSizeMake(UIScreen.mainScreen().bounds.size.width, UIScreen.mainScreen().bounds.size.height) 
    var itemOptions = PHImageRequestOptions() 
    itemOptions.networkAccessAllowed = true 

    PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: targetSize, contentMode: PHImageContentMode.AspectFit, options: itemOptions) { (result:UIImage!, info:[NSObject : AnyObject]!) -> Void in 
     if result != nil && result.scale == 1 { 
      self.subFuncForDisplayCurrentImage(result, ID: (asset?.localIdentifier)!) 
     } 
    } 

답변

2
subFuncForDisplayCurrentImage()을 통과하지 않도록 일부 이미지에 대해서는

, 그것은 규모 1 (고해상도)의 이미지를 반환하지 않습니다

배달 모드로 PHImageRequestOptionsDeliveryModeHighQualityFormat을 지정할 수 있습니다. 문서에서

: PHImageRequestOptionsDeliveryMode, 그것은 상태 :

사진에 관계없이, 그것을로드하는 데 걸리는 시간이 얼마나의 오직 최고 품질의 이미지를 사용할 수 있습니다.

+0

이 답변 주셔서 감사합니다 높은 품질의 이미지 코드 아래에 추가 얻으려면. 그 특별한 이미지는 버스트 사진입니다. 버스트 사진에서 고해상도 이미지를 얻을 수있는 방법이 있습니까? –

+0

다른 사진과 같은 버스트 사진과는 관계가 없습니다. 크기가 == 2이고 배율 == 1 인 이미지를 얻는 이유는 'PHImageRequestOptions'의 속성을 설정하지 않았기 때문입니다. 'ssync'를'YES'로 설정하고'resizeMode'를'PHImageRequestOptionsResizeModeExact'로 설정해야합니다. 'synchronous'의 기본값은'NO'이며 작은 이미지를 사용할 수있는 작은 이미지를 줄 것입니다. 그리고 ResizeModeExact는 전달 된 이미지가 정확히 targetSize임을 보장합니다. – gabbler

+0

굉장! 당신의 설명을 통해, 나는 나의 문제를 해결했다. 고 블러, 고 블러! –

1

itemOptions.deliveryMode = PHImageRequestOptionsDeliveryMode.HighQualityFormat이

관련 문제