2014-10-15 6 views
2

이것은 더 논리적 인 질문입니다. 모든 것이 잘 작동합니다.큰 이미지보기 작은 이미지보기

나는 ImageView를 가지고 있으며 웹 서버에서 이미지를 다운로드합니다. 우리 웹 서버는 가장 큰 크기의 이미지를 유지하고 필요한 장치에 맞게 이미지 크기를 조정합니다. 그럼, 만약 내가 UIImageView 크기가 200 * 200이고 400 * 400의 이미지를 다운로드 할 때 이미지를 200 * 200으로 축소 한 다음 이미지 뷰에 넣고 400으로 400을 이미지에 두어 보았습니다. 200 이미지보기 및 날 괜찮아 보이는 (pixelation 없음). 축소를 구현 한 방법은 이미지 컨텍스트 내에서

[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 

입니다. 이제 사과가 이미지보기에 맞게 이미지를 재배치하기 때문에 어쨌든이 작업을 수행하고있는 것처럼 느껴 지므로 정말 필요합니까? 아니면 고해상도 이미지를 이미지보기에 직접 넣어야합니까?

제안 사항.

답변

1

200x200 UIImageView에 400x400 UIImage를 지정하면됩니다. CoreAnimation은 이미지 스케일링을 처리합니다.

이미지 품질

서로 다른 이미지 크기 조정 자질을 실험 할 경우

, 당신은있는 UIImageView의 레이어에 minificationFilter을 설정할 수 있습니다. 기본값은 kCAFilterLinear으로, 사용상 좋을 것 같습니다. 400x400 이미지의 여러 픽셀을 선택하고 함께 선형 혼합하여 200x200 이미지 픽셀 색상을 얻습니다. kCAFilterNearest은 이미지 품질을 저하시키면서 더 나은 성능을 제공합니다 (400x400 이미지의 단일 픽셀을 선택하여 200x200 이미지 픽셀의 색상을 얻음).

대신 실험을 통해 kCAFilterTrilinear을 사용해보세요. 그러면 약간의 성능 저하로 더 좋은 이미지 품질을 얻을 수 있습니다. 비록 실제로 모든 장치에서 지원 될 수 있다고 생각하게하는 iPad 2에서 this guy's을 사용하여 성공 했음에도 불구하고이 설명서가 어떤 장치에 실제로 영향을 미칠지 명확하지 않습니다. 설명서에는 영향을 미치기 위해 이미지가 2의 거듭 제곱의 크기 일 필요가있을 수도 있음에 유의하십시오.

성능 당신은 아마도 메모리와 코어 애니메이션은 (이미지 크기 조정 포함) 렌더링 시간을 절약 할 수있는 성능 최적화로 아래로 200x200 크기의 이미지를 확장 할 수 있지만, 난 당신이하지 않는 한 그렇게하지 않을

앱의 실적이 실제로 이로부터 이익을 얻을 것이라고 생각하는 이유.

+0

안녕하세요 James, 답장을 보내 주셔서 감사합니다. 성능은 나에게 문제가되지 않습니다. 나는 처음에 이것을했기 때문에 픽셀 화 문제가 발생하지 않았다. 이제 구현 후,이 수동 축소 기능이 실제로 필요한지 이해하려고했습니다. 심지어 나는 그것이 중복되는 것처럼 느낀다. 귀하의 경험에 비추어, 기본 CoreAnimation 다운 스케일링 (가로 세로 비율 유지)으로 픽셀 화 문제를 관찰 해본 적이 있습니까? –

+0

저는 Core Animation의 스케일링에 항상 만족해했습니다. 나는 당신이 사용하고있는 치수 (각 치수를 반으로 줄인다)가 이미지 스케일링이 당신에게 꽤 좋다는 것을 의미한다고 생각합니다. 도움이 될만한 좀 더 자세한 정보로 내 대답을 업데이트했습니다. –

+0

제임스 감사합니다. 정말 도움이되었습니다. 나는 이전에이 minification에 대해 몰랐다. 다시 한 번 고마워요 :) –