BlendMode

2025. 7. 26. 21:51·iOS/SwiftUI
반응형

🏁 학습할 내용

  • BlendMode
    • 정의
    • 사용하는 목적
    • 종류

🌈 BlendMode

 

✅ 정의

 

2개의 뷰를 겹칠 때, 어떻게 섞을 지 결정하는 방식이다.

여기서 중요한 점은 2개의 뷰 중 어떤 뷰에 적용을 해줘야할까?

 

정답은 앞에 있는 뷰에 적용한다.

 

배경뷰와 겹친 부분에 효과를 적용하는 것이기 때문에 앞에 있는(효과가 들어갈) 뷰에 적용한다, 

 

🎯 사용하는 목적

즉, 디자인을 더 예쁘고, 눈에 띄게 만들기 위해 쓰는 도구

 

일반적인 예

  • 이미지나 뷰에 특별한 시각 효과를 주고 싶을 때
  • 텍스트나 도형을 배경과 자연스럽게 섞고 싶을 때
  • 어두운/밝은 느낌, 조명 효과 등을 코드로 제어하고 싶을 때

 

🎨 종류

기본 형태는 다음 코드와 사진으로 진행한다.

  public var body: some View {
    HStack {
      Color.red.frame(width: 50, height: 50, alignment: .center)

      Color.green.frame(width: 50, height: 50, alignment: .center)
        .rotationEffect(.degrees(45))
        .padding(-20)

    }
  }

🌑 Darkening

배경보다 어두운 색이 남는 방식

  • multiple: 어두운 영역은 더 어두워짐
  • darken: 두 색 중 더 어두운 쪽으로
  • colorBurn: 배경과 전경의 대비를 높이면서 어둡게함
  • plusDarker: 두 색상을 더해,  어두운 쪽으로 선택 

🔆 Lightening

배경보다 밝은 색이 남는 방식

  • lighten: 두 색 중 더 밝은 쪽으로
  • screen: 색을 반대로 곱하고 다시 반전 
  • colorDodge: 배경과 전경의 대비를 높이면서 밝게
  • plusLighter: 두 색상을 더해,  밝은 쪽 선택

✨ Contrast

색 대비를 강조하는 용도

  • overlay: multiply + screen 조합. 배경에 따라 밝거나 어둡게
  • softLight: 부드럽게 빛나는 효과
  • hardLight: 강하게 빛나는 효과

🪞 Inverting

색을 반전시키거나 반전된 색을 기반으로 연산하는 블랜딩 모드

  • difference: 배경과 전경 차이만 남김 
  • exclusion: difference보다 더 부드럽게 반전됨

🖍️ Mixing color component

RGB 색상, 채도, 밝기 같은 개별 요소에 적용

  • hue: 배경의 밝기+채도에 위 뷰의 색상(Hue) 를 입힘
  • saturation: 배경의 밝기+색상에 위 뷰의 채도(Saturation) 를 입힘
  • color: 배경의 밝기에 위 뷰의 색상+채도를 입힘
  • luminosity: 배경의 색상+채도에 위 뷰의 밝기(Lightness) 를 입힘

🧮  Accessing proter-duff modes

픽셀을 어떻게 그릴까를 수학적으로 정의한 모델

  • sourceAtop: 기본값, 배경위에 전경이 그려짐
  • destinationOver: 배경이 전경위에 올라옴
  • destinationOut: 배경이 전경과 겹치지 않는 부분만 보존되고, 겹치는 부분은 투명처리


출처

 

BlendMode | Apple Developer Documentation

Modes for compositing a view with overlapping content.

developer.apple.com

 

 

32. globalCompositeOperation - 색상 블렌딩모드 (합성)

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. globalCompositeOperation캔버스에 그리려는 색이 그려져 있던 색과 겹쳐질때 어떤식으로 조합할지 지정합니다. 포토샵을 해보신 분들은 아시

combatguri.tistory.com

 

반응형

'iOS > SwiftUI' 카테고리의 다른 글

[ThirdParty] SwiftUI-Shimmer 해석하기  (3) 2025.07.27
RedactionReasons  (1) 2025.07.27
[@Environment] layoutDirection  (0) 2025.07.26
스유에서 lineHeight과 letterSpacing 적용하기  (2) 2025.07.22
.contentShape  (0) 2025.07.19
'iOS/SwiftUI' 카테고리의 다른 글
  • [ThirdParty] SwiftUI-Shimmer 해석하기
  • RedactionReasons
  • [@Environment] layoutDirection
  • 스유에서 lineHeight과 letterSpacing 적용하기
Hamp
Hamp
남들에게 보여주기 부끄러운 잡다한 글을 적어 나가는 자칭 기술 블로그입니다.
  • Hamp
    Hamp의 분리수거함
    Hamp
  • 전체
    오늘
    어제
    • 분류 전체보기 (304)
      • CS (30)
        • 객체지향 (2)
        • Network (7)
        • OS (6)
        • 자료구조 (1)
        • LiveStreaming (3)
        • 이미지 (1)
        • 잡다한 질문 정리 (0)
        • Hardware (2)
        • 이론 (6)
        • 컴퓨터 그래픽스 (0)
      • Firebase (3)
      • Programing Langauge (37)
        • swift (32)
        • python (4)
        • Kotlin (1)
      • iOS (132)
        • UIKit (37)
        • Combine (1)
        • SwiftUI (32)
        • Framework (7)
        • Swift Concurrency (22)
        • Tuist (6)
        • Setting (11)
        • Modularization (1)
        • Instruments (6)
      • PS (59)
        • 프로그래머스 (24)
        • 백준 (13)
        • LeetCode (19)
        • 알고리즘 (3)
      • Git (18)
        • 명령어 (4)
        • 이론 (2)
        • hooks (1)
        • config (2)
        • action (7)
      • Shell Script (2)
      • Linux (6)
        • 명령어 (5)
      • Spring (13)
        • 어노테이션 (1)
        • 튜토리얼 (11)
      • CI-CD (4)
      • Android (0)
        • Jetpack Compose (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Swift
    프로그래머스
    CS
    dispatch
    lifecycle
    AVFoundation
    dp
    concurrency
    dfs
    Spring
    투포인터
    boostcamp
    IOS
    SwiftUI
    Tuist
    protocol
    GIT
    백준
    property
    UIKit
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
Hamp
BlendMode
상단으로

티스토리툴바