티스토리 뷰
안녕하세요 :) Zedd입니다.
일단 제목에서 보실 수 있다시피..저 두 친구는
UIImage -> Data를 아주 간-단하게 해주는 메소드입니다.
pngData()
png / data
말 그대로 PNG포맷으로 지정된 이미지를 데이터로 바꿔주는 친구입니다.
이 친구는
데이터를 생성하는데 문제가 생겼다? -> nil
기본 CGImageRef에 지원되지 않는 비트 맵 형식의 데이터가 포함됐다? -> nil
을 리턴할 수 있습니다.
jpegData(compressionQuality:)
이 친구도 말 그대로 JPEG 포맷으로 지정된 이미지를 데이터로 바꿔주는 친구입니다.
compressionQuality라는 파라미터를 받는데요, 말 그대로..압축 퀄리티..
0.0 ~ 1.0 사이의 값을 줄 수 있으며
0은 최대 압축(최저 품질)
1은 최소 압축(최고 품질)
을 나타냅니다.
pngData와 마찬가지로
데이터를 생성하는데 문제가 생겼다? -> nil
기본 CGImageRef에 지원되지 않는 비트 맵 형식의 데이터가 포함됐다? -> nil
을 리턴할 수 있습니다.
제 문제는
같은 이미지에 pngData()를 호출했을때와. jpegData(compressionQuality: ) 를 호출했을 때 데이터의 크기가 차이가 많이 난다는 점...
그냥 간단한 예제를 하나 만들어보겠습니다. 버튼을 누르면 카메라가 열리고...
카메라로 사진찍고..찍으면 그 이미지에 대해서 pngData() / jpegData(compressionQuality: ) 둘다 호출하기.
제 폰은 아주 살짝ㅎ 카메라가 꾸진편인데..위 사진에 대해서
pngData()호출 시 : 19384819 bytes = 약 19.4MB
jpegData(compressionQuality: 1) 호출 시 : 4806499 bytes (심지어 최고품질) = 약 4MB
4배가 넘는 차이가 나네요.
그래서 찾아보았읍니다...
PNG -> 비손실 그래픽 파일 포맷
JPEG -> 이미지 압축시킬 때 일부 데이터를 날려버리는 손실 압축 기법 표준.
(이 JPEG 압축 기법을 사용하는 이미지들도 보통 JPEG 이미지라 불린다.)
와 JPEG는 "제이펙"으로 읽는거네요.....저는 그냥 PNG(피엔지..) 처럼 걍 읽었었는데.....
그리고 심지어 JPEG를 Joint Photographic Experts Group라는 단체에서 만들었는데
JPEG는 Joint Photographic Experts Group의 약자임
비손실이냐 손실이냐에서 데이터의 크기 차이가 나는거겠죠!?
너무 자명해서 더 할말이 없다...
지금 제 스펙으로 이미지 하나당 19MB씩이나 나오면 안되기때문에..
jpegData(compressionQuality: )쓰는걸로 합의..
'iOS' 카테고리의 다른 글
Line graph animation (1) | 2020.04.23 |
---|---|
UIBezierPath (8) - line graph (0) | 2020.04.22 |
iOS ) UICollectionReusableView (2) | 2020.04.11 |
RxTest (2) | 2020.04.09 |
Core Data (2) (5) | 2020.04.08 |
- Xcode
- 피아노
- np-hard
- ios 13
- Combine
- swift 공부
- 스위프트 문법
- UIBezierPath
- WWDC
- actor
- swift array
- swift3
- SwiftUI
- swift tutorial
- Accessibility
- swift delegate
- 스위프트
- 제이슨 파싱
- iOS delegate
- swift sort
- Git
- FLUTTER
- np-complete
- Swift
- github
- WKWebView
- fastlane
- IOS
- 회고
- WidgetKit
- Total
- Today
- Yesterday