티스토리 뷰
[CoreImage] 기본 필터 & 커스텀 필터 (OpenGL, Metal) 적용하기 이 포스팅에서 커스텀 필터 만들때,
CIColorKernel 를 썼는데 더 자세히 알아보려고 합니다..!
CIColorKernel은 CIKernel 의 서브클래스로
이미지 프로세싱에서 딱 컬러값만 프로세싱해주고 싶을 때 사용합니다.
[1] input type
0개 이상의 input images들을 받을 수 있습니다.
각각의 input image는 특정 타입의 파라미터로 표현됩니다.
Core Image Kernel Language (OpenGL Shading Language) 에서는 파라미터 타입이 __sample 이고
Metal Shading Language 에서는 파라미터 타입이 sample_t 입니다.
__sample은 vec4,
sampe_t는 float4 를 나타낸다고 합니다.
코드 타고 들어가보면 이런식으로 되어있어요
기존 포스팅의 커널 코드를 보면 이미지 하나만 받으니까 파라미터는 한 개이고
각각 인풋타입이 __sample, sample_t 인 것을 알 수 있습니다.
[2] return type
output image를 위한 pixel color를 리턴합니다.
Core Image Kernel Language (OpenGL Shading Language) 에서는 리턴 타입이 vec4 이고
Metal Shading Language 에서는 리턴 타입이 float4 입니다.
기존 포스팅의 커널 코드를 보면 리턴타입이 각각 vec4, float4로 되어있는 것을 알 수 있습니다.
[3] vec4, float4
vec4는 vect타입 value 4개의 묶음,
float4는 float 타입 value 4개의 묶음 을 의미하는데요
순서대로 r, g, b, a 값을 의미합니다.
그래서 input과 똑같은 rgba 값을 리턴해주면 input이미지가 그대로 결과로 나오게 됩니다.
또는 이렇게 간략하게 해도 됩니다.
만약 input과 똑같은 rgb 값을 리턴해주고 알파값만 0.5로 바꿔주겠다고 하면
알파값만 변한 결과가 나오게 됩니다.
만약 b와 g의 값을 바꿔주게 된다면,,?!
이런 결과가 나오네요
만약 r과 g의 값을 바꿔주게 된다면...?
이런 결과가 나오네요
'🍏 > iOS' 카테고리의 다른 글
[CIKernel] CIWarpKernel에 대해 알아보자 (0) | 2020.06.12 |
---|---|
[CIKernel] CIBlendKernel에 대해 알아보자 (0) | 2020.06.12 |
[CoreImage] 기본 필터 & 커스텀 필터 (OpenGL, Metal) 적용하기 (0) | 2020.06.12 |
[UIKeyCommand] UIKeyCommand로 키보드의 방향키(Up, Down, Left, Right)를 인지해보자 (0) | 2020.05.11 |
[UINavigationItem] autolayout을 이용하여 navigation titleView 만들기 (0) | 2020.05.05 |
- Total
- Today
- Yesterday
- PencilKit
- Flutter getter setter
- Django Heroku Scheduler
- flutter build mode
- flutter deep link
- Flutter Clipboard
- METAL
- Flutter 로딩
- Dart Factory
- Watch App for iOS App vs Watch App
- cocoapod
- Sketch 누끼
- Flutter Text Gradient
- DRF APIException
- 장고 URL querystring
- SerializerMethodField
- 플러터 싱글톤
- flutter dynamic link
- github actions
- 구글 Geocoding API
- Flutter Spacer
- ribs
- 장고 Custom Management Command
- 플러터 얼럿
- flutter 앱 출시
- Django FCM
- ipad multitasking
- drf custom error
- Python Type Hint
- Django Firebase Cloud Messaging
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |