2009-07-28 7 views
12

저는 작업중인 작은 아이폰 앱을 가지고 있고 UIImageView로 이미지를 표시하고 있습니다. 가로 세로 맞춤 모드를 사용하여 크기를 조절하고 있습니다. 보간/스무딩없이 이미지 크기를 조정하고 싶습니다 (픽셀 화 된 것으로 보이기를 원합니다). 이 동작을 변경할 수있는 방법이 있습니까?UIImageView 크기 조정/보간

좀 더 일반적인 질문은 내 자체 스케일링 알고리즘을 구현할 수 있습니까? 아니면 내가 선택할 수있는 다른 내장 알고리즘이 있습니까?

답변

20

당신은 가장 가까운 이웃 필터에 뷰의 레이어의 magnificationFilter 속성을 설정해야합니다 : 당신이 들어있는 파일의 맨 위에 선

#import <QuartzCore/CALayer.h> 

을 포함해야합니다

[[view layer] setMagnificationFilter:kCAFilterNearest] 
+1

rekle의 대답이 말한대로, setMagnificationFilter 사용할 때 # import에 를 추가해야합니다 –

+1

위대한 나의 목적을 달성,하지만 난 사용할 때, 물어보고 싶은 'magnificationFilter = kCAFilterNearest'는 이미지의 원래 픽셀을 확대 한 크고 날카로운 픽셀입니까 아니면 일부 처리로 생성 된 픽셀입니까? 고마워요! – Suge

-2

이렇게 할 수있는 방법은 두 가지가 있습니다. 보간없이 재조정 algrorithm을 구현할 수 있습니다. 이것이 효과가 있다면 김프 나 포토샵과 같은 다른 응용 프로그램에서 이미지의 크기를 조정할 수 있습니다. 이것은 응용 프로그램에서 크기를 동적으로 변경해야하는 경우가 아니라면 작동합니다.

5

setMagnificationFilter를 호출하면 컴파일되지 않습니다.

+0

QuartzCore 프레임 워크를 프로젝트에 추가하십시오 (Groups & Files -> Add -> ExistingFrameworks ... -> QuartzCore.framework -> Add). – suda

0

스위프트

imageView.layer.magnificationFilter = kCAFilterNearest 
imageView.layer.shouldRasterize = true