이미지의 크기를 알아 내고 싶다고 가정 해 봅시다. 사용자가 iPad 앱에서 10,000x1000 픽셀 이미지를로드하려고하면 대화 상자가 표시되고 충돌하지 않을 수 있습니다. 내 큰 이미지를 메모리에 즉시로드하는 [UIImage imageNamed:]
또는 [UIImage imageWithContentsOfFile:]
을 수행하면 내가 대신 코어 이미지를 사용하는 경우코어 이미지가 이미지 데이터를 즉시로드합니까?
는 다음과 같이 말한다 :
CGSize imgSize = ciImage.extent.size;
그 부하가 메모리에 전체 이미지가 저에게이 말할 것이다 :
이CIImage *ciImage = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:imgPath]];
그리고 그 크기에 대한 나의 새로운 CIImage
요청 , 또는 파일의 메타 데이터를보고 이미지의 크기를 알아낼 것인가?
아, 음, CIImage는 내가 원하는 것을하지 않을 것이지만, 다른 것이 있다는 것을 알리라. 데이터를 더 다루기 쉬운 것으로 크기를 조정하는 방법을 알고 있다고 생각하지 않으므로 "거절"이라는 대화 상자가 아닌 사용자에게 내 거대한 이미지의 더 작은 버전을 제공 할 수 있습니까? –
실제로, 나는 그것을 전에했다. 클래스에 [this post] (http://stackoverflow.com/a/2658801/465893)에 설명 된 메서드를 포함하거나 UIImage [like so] (https : //)에 카테고리로 메서드를 추가 할 수도 있습니다. gist.github.com/3185714) (접두사/헤더 클래스에 추가 할 수 있으며 모든 UIImage에서 사용할 수있는 방법입니다)! – andycam
아하지만 그 방법은 UIImage가 메모리에 있음을 의미하는 크기 조정을 위해 제공되어야합니다. 그래서 크기를 조정하기 전에 엄청난 이미지로 UIImage를 처음 만들 때 응용 프로그램이 중단됩니다. –