Notice
Recent Posts
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 |
Tags
- five lines of cdde
- storekit2
- AutoLayout
- IOS
- 카카오맵클론
- 리팩터링
- ARC
- ios면접
- css학습
- 프로그래머스
- firebase
- Swift디자인패턴
- algorithm
- Safari Inspector
- alamofire
- SWIFT
- hackerrank
- 앱의생명주기
- RC
- five lines of code
- Swift코딩테스트
- unittest
- Di
- 클린코드
- 코딩테스트입문
- UIKit
- TDD
- firestore
- RxSwift
- mrc
Archives
- Today
- Total
샘성의 iOS 개발 일지
UIImage를 원하는 사이즈로 조절하는 법 본문
728x90
Asset에 불러온 이미지를 사용할 때 해당 이미지를 그대로 사용하는 경우 이미지가 터무니없이 작거나 과하게 큰 경우를 흔히 겪을 수 있다.
이럴 때 UIImage에 메서드 하나를 확장하여 추가하면 손쉽게 이미지의 크기를 변경할 수 있다.
소스코드
extension UIImage {
func resizeImage(targetSize: CGSize) -> UIImage {
// 1. 얼마나 더 크기를 늘려야하는지 측정
let widthRatio = targetSize.width / size.width
let heightRatio = targetSize.height / size.height
// 2. 1번에서 얻은 측정값 중 더 작은 값 비교하여 얻기
let scaleFactor = min(widthRatio, heightRatio)
// 3. 2번 값으로 새로운 이미지 사이즈 생성(찌그러짐 방지하기 위해 같은 배율로 늘리기)
let scaledImageSize = CGSize(
width: size.width * scaleFactor,
height: size.height * scaleFactor
)
// 4. 3번에서 생성한 새로운 이미지 사이즈로 만드는 renderer 생성
let renderer = UIGraphicsImageRenderer(
size: scaledImageSize
)
// 5. renderer로 이미지 새로 그리기
let scaledImage = renderer.image { _ in
self.draw(in: CGRect(
origin: .zero,
size: scaledImageSize
))
}
return scaledImage
}
}
사용 예시
728x90
'iOS > UiKit' 카테고리의 다른 글
[KakaoMap 클론] 4. Firebase에 카카오톡 로그인 유저 정보 저장하기 (3) | 2023.06.09 |
---|---|
UIApplication 객체의 컨트롤러 역할은 어디에 구현해야 하는가? (0) | 2023.06.08 |
[KakaoMap 클론] 3. 지도 위에 경로 그리기 (0) | 2023.05.31 |
[KakaoMap 클론] 2. Kakao API로 장소 검색 결과 받기 (0) | 2023.05.25 |
[KakaoMap 클론] 1. KakaoMap API 세팅하기 (0) | 2023.05.21 |