내 응용 프로그램의 핵심 기능 중 하나는 사용자가 자신의 이미지를 사용할 수 있다는 것입니다. 그러나 이미지 크기는 특정 크기로 제한되어야합니다. 예를 들어 사용자는 imageView에 파노라마 사진을로드 할 수 없습니다. 이것을 제한하는 가장 좋은 방법은 무엇입니까?UIImageView에 대해 큰 UIImages 사용 안 함
imagePickerController 뒤에 if 문을 사용해야하나요? 그리고 좋은 최대 크기는 무엇입니까?
내 응용 프로그램의 핵심 기능 중 하나는 사용자가 자신의 이미지를 사용할 수 있다는 것입니다. 그러나 이미지 크기는 특정 크기로 제한되어야합니다. 예를 들어 사용자는 imageView에 파노라마 사진을로드 할 수 없습니다. 이것을 제한하는 가장 좋은 방법은 무엇입니까?UIImageView에 대해 큰 UIImages 사용 안 함
imagePickerController 뒤에 if 문을 사용해야하나요? 그리고 좋은 최대 크기는 무엇입니까?
속성 image.size
을 확인한 다음 계산을 수행하여 과도한 크기 또는 지원하지 않는 비율을 확인할 수 있습니다.
예를 들어 파노라마 이미지는 너비와 높이의 비율이 2,3 또는 4 : 1 인 경향이있어 감지하기 쉽습니다.
사용자가 이미지를 선택한 후에도 이미지의 크기를 조정할 수있는 UIImage 확장을 추가 할 수도 있습니다.
extension UIImage {
func resizeImage(_ targetSize: CGSize) -> UIImage {
// This is the rect that we've calculated out and this is what is actually used below
let rect = CGRect(x: 0, y: 0, width: targetSize.width, height: targetSize.height)
// Actually do the resizing to the rect using the ImageContext stuff
UIGraphicsBeginImageContextWithOptions(targetSize, false, 1.0)
self.draw(in: rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}
}
사용법 : 가능성이 귀하의 요구 사항과 왜 충돌을 발생하는에 따라 달라집니다
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let pickedImage = info[UIImagePickerControllerEditedImage] as! UIImage
let resizedImage = pickedImage.resizeImage(CGSize(width: 100, height: 100))
}
최적의 크기입니다.
imageView contentMode를 aspectSizeToFit 또는 Fill으로 쉽게 설정할 수 있습니다.이 방법으로 이미지 크기 제한에 대해 걱정할 필요가 없습니까? – Joe
아니요 나중에 메모리 집중 작업을해야하고 이미지가 커지면 신호 9와 충돌합니다. – rotr
이미지를 이미지 크기의 실제 크기로 샘플링 한 다음 이미지보기; 그러면 메모리에 여분의 픽셀이 생기지 않게됩니다. http://nshipster.com/image-resizing/ –