Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- scrollview
- 스위프트
- Clean Code
- 클린 코드
- UITextView
- ios
- swift documentation
- swiftUI
- rxswift
- 리팩토링
- Refactoring
- combine
- HIG
- 애니메이션
- Xcode
- SWIFT
- map
- collectionview
- MVVM
- ribs
- uiscrollview
- uitableview
- tableView
- UICollectionView
- RxCocoa
- Observable
- 리펙토링
- clean architecture
- Protocol
- Human interface guide
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] UIImage의 size 주의사항(scale, UIScreen.main.scale, scale factor) 본문
iOS 응용 (swift)
[iOS - swift] UIImage의 size 주의사항(scale, UIScreen.main.scale, scale factor)
jake-kim 2024. 4. 15. 01:34사전지식) scale factor 개념
- scale factor란 pixcel을 표현할 때 더 높은 픽셀 밀도를 표현하기 위한 값
- @1x는 1배의 픽셀 밀도
- @2x는 2배의 픽셀 밀도
- @3x는 3배의 픽셀 밀도
ex) Assets.xcassets 파일의 한 이미지 파일

UIImage의 size 주의사항
- UIImage 인스턴스에서 size 프로퍼티를 사용할 수 있는데, 여기서의 size는 위에서 1x, 2x, 3x 중에 어떤 사이즈가 출력될까?
let iamge = UIImage(named: "myImage")
print(image.size) // CGSize(width: 200, height: 200)
- 정답은 1x기준의 해상도 값이 출력됨
- 이미지의 실제 해상도는 1x의 해상도가 200*200이라면, 2x는 400*400, 3x는 600*600이지만 UIImage 인스턴스에서 size는 무조건 200*200으로 고정
- 디바이스의 해상도가 iPhone SE같은 경우 2x이고, iPhoen 15Pro는 3x이지만 모두 image.size 값은 200*200으로 출력
- 즉, UIImage의 size는 실제 이미지의 해상도가 아닌 1x에서의 해상도를 가져오는 것
간단한 해결 방법 - cgImage 사용하기
- UIImage를 cgImage로 변환한 후 width와 height값을 구하면 자동으로 scale을 반영한 값을 가져오므로 아래처럼 사용할 것
private let image = UIImage(named: <#T##String#>)
let cgImage = image?.cgImage
print(cgImage?.width, cgImage?.height)
'iOS 응용 (swift)' 카테고리의 다른 글
Comments
jake-kim님의
글이 좋았다면 응원을 보내주세요!