code

@ 1x, @ 2x 및 @ 3x iOS 이미지가 필요한 이유는 무엇입니까?

codestyles 2020. 11. 1. 18:09
반응형

@ 1x, @ 2x 및 @ 3x iOS 이미지가 필요한 이유는 무엇입니까?


이 세 가지 특정 이미지 유형이 필요한 이유는 무엇입니까?

내 앱에 50 픽셀 x 50 픽셀과 같은 배경 이미지가있는 버튼이있는 경우이 이미지의 3 가지 버전이 필요한 이유는 무엇입니까? 700x700과 같이 훨씬 더 높은 해상도의 이미지를 만드는 것을 막는 이유는 무엇입니까? 아이폰에서 축소 될 때 장치가 원하는 최대 해상도 아래로 떨어지지 않을 것입니다.

내가 생각할 수있는 유일한 것은 더 많은 공간을 차지하지만 간단한 앱 / 간단한 버튼의 경우 문제가 발생하지 않는 것 같습니다. 몇 가지 장치에서 시도해 보았지만 시뮬레이션하고이 방법을 수행 할 때 차이가 없음을 확인했습니다. 그러나 앱과 관련 항목에 대해 더 자세히 살펴보면이 기술 뒤에 실체가 있다고 확신합니다.


정확한 크기가없는 경우 다음 두 가지가 발생할 수 있습니다.

업 스케일링

@3x또는 @2x업 스케일링 될 수 @1x있지만 일반적으로 시각적 결과가 흐릿하고 굵은 선이 있고보기에 좋지 않습니다. 하위 픽셀을 사용해야하기 때문에 업 스케일링 @3x@2x더 나쁠 수 있습니다.

축소

일반적으로 결과는 업 스케일링보다 훨씬 낫지 만 모든 이미지에 적용되는 것은 아닙니다. 당신이 경우 1pxA의 국경 @3x이미지를로 다운 스케일링 후 @1x국경 볼 (0.33px)되지 않습니다. 이미지의 작은 물체에도 동일하게 적용됩니다. 축소는 모든 세부 사항을 파괴합니다.

일반적으로 이미지가 완벽하게 보이려면 축소와 확대를 모두 피해야합니다. 시각적 문제가있는 경우 에만 항상 @2x또는 @3x이미지 만 사용 하고 다른 스케일을 추가 할 수 있습니다. 더 높은 해상도를 사용한다고해서 축소가 개선되지는 않습니다. 고해상도는 업 스케일링을 방지하기 위해서만 사용됩니다. 높은 규모 (예에서 규모 축소 @100x하기) @1x에서 다운 스케일링보다 더 나은 결과를 만들지 않습니다 @3x.


스케일링 또는 픽셀 측면에서 3 가지 종류의 Apple 디바이스 (iPhone 및 iPad)가 있기 때문에 이미지 자산에는 3 가지 종류의 이미지가 필요합니다.

1 pixel = 1 point@ 1x (이전 iPhone 및 iPad 장치) 를 나타내는 일반 장치

4 pixels(2 x 2) = 1 point@ 2x (iPhone 4+)에 해당 하는 Retina 장치

9 pixels (3 x 3) = 1 point@ 3x (iPhone6 ​​+)에 해당 하는 Retina iPhone6 ​​및 iPad

따라서 3 스케일로 동일한 이미지를 제공하기 위해 iOS는 어떤 장치에 어떤 이미지를 표시할지 결정합니다.

편집하다

여기에 이미지 설명 입력


고해상도 그래픽을 제공하면 사용자 기기의 공간이 낭비되기 때문입니다. 앱 슬라이싱 덕분에 장치는 실제로 장치에 맞는 부분 만 다운로드합니다 (App Store에서) (따라서 레티 나 장치는 비 레티 나 그래픽을 다운로드하지 않습니다). 이것이 Apple이 자산 카탈로그와 이러한 종류의 규칙을 만든 이유입니다. 그들은 세션에서 그것을 설명합니다.

요컨대 메모리 / 디스크 사용량을 줄이는 것이므로 성능과 사용자 경험을 높이는 것입니다.


우선, 포인트 대 픽셀 동작을 알아야합니다. 레티 나가 아닌 기기에서 포인트 대 픽셀 비율은 1 포인트 = 1 픽셀 입니다. 레티 나 장치에는 화면 크기에 따라 1 포인트 = 2x2 픽셀과 픽셀 밀도로 인해 1 포인트 = 3x3 픽셀의 두 가지 비율이 있습니다 .
그렇기 때문에 가장 높은 해상도로 표시하려면이 3 가지 유형의 이미지가 필요합니다.


Sulthan이 말한 내용을 보완합니다.

특정 기기에 적합한 이미지를 제공하지 않았기 때문에 축소 또는 확대해야합니다. 이러한 프로세스 메모리와 처리를 소모하므로 한 번에 수행하는 이미지 수와 이미지 크기에 따라 성능이 저하 될 수 있습니다.


하나의 큰 이미지 만 제공하면 몇 가지 문제가 발생합니다.

  1. 축소하면 품질이 저하됩니다 (크지 않더라도).
  2. 이미 렌더링 된 이미지를 표시하는 것보다 이미지를 축소하는 데 더 많은 계산 능력이 필요합니다.
  3. 바이너리의 크기가 증가하고 iOS 9에 도입 된 앱 씬닝의 이점을 누릴 수 없습니다.

보시다시피 하나의 이미지 만 생성하면 앱의 성능과 품질에 영향을 미치며 오래된 기기를 사용하는 사용자에게 불균형 적으로 영향을 미칩니다. 이 때문입니다:

  1. 더 축소해야합니다. 또한 기기의 성능이 새 기기의 성능만큼 좋지 않으므로 앱의 지연을 알아 차릴 가능성이 훨씬 더 높습니다.
  2. 저장 공간이 많지 않으므로 앱 씬닝을 사용하여 도움을주고 자합니다.
  3. 품질 손실은 그들에게 가장 높을 것이며 장치의 해상도가 낮다는 사실을 고려할 때 그들은 그것을 알 것입니다.

이로 인해 사용자는 불행 할 가능성이 높으며 이것은 당신에게 좋지 않습니다. 제 경험상 불만족 한 사용자는 만족 한 사용자보다 앱을 평가할 가능성이 10 배 더 높기 때문입니다. 당신은 그것을 원하지 않습니까? :)

참고 URL : https://stackoverflow.com/questions/32354453/why-do-i-need-1x-2x-and-3x-ios-images

반응형