Coram Deo

[Flutter] BoxFit 본문

Flutter

[Flutter] BoxFit

탁탁슝 2025. 2. 24. 13:44

"BoxFit"은 Flutter에서 이미지 위젯을 다룰 때 사용되는 열거형(enumeration) 값 중 하나로, 이미지를 다양한 방식으로 위젯 영역에 맞게 크기를 조정할 때 사용됩니다. BoxFit은 Image 위젯과 같은 이미지 관련 위젯에서 fit 속성을 설정할 때 유용합니다. 이 속성을 통해 이미지를 어떻게 확장하고, 자르고, 맞추는지를 결정할 수 있습니다.

1. BoxFit.fill

  • 이미지가 위젯의 크기에 맞게 완전히 채워집니다. 이때 이미지의 가로 세로 비율은 무시되고, 위젯의 크기만큼 이미지가 늘어나거나 줄어듭니다.
  • 특징: 이미지가 왜곡될 수 있음.
  • Image.asset('assets/image.png', fit: BoxFit.fill)

2. BoxFit.contain

  • 이미지는 위젯 영역 안에 전체가 보이도록 비율을 유지하며 크기가 조정됩니다. 가로 또는 세로 방향 중 더 작은 쪽에 맞춰서 이미지가 조정되고, 나머지 공간은 비어 있을 수 있습니다.
  • 특징: 이미지 왜곡 없이 크기 조정됨.
  • Image.asset('assets/image.png', fit: BoxFit.contain)

3. BoxFit.cover

  • 이미지가 위젯 영역을 완전히 채우되, 이미지의 비율을 유지하면서 이미지를 확대하여 부족한 부분을 잘라냅니다.
  • 특징: 이미지 비율이 유지되며, 자르기 효과가 발생할 수 있음.
  • Image.asset('assets/image.png', fit: BoxFit.cover)

4. BoxFit.fitWidth

  • 이미지가 위젯의 가로 크기에 맞춰 크기가 조정됩니다. 세로 크기는 비율에 맞춰 조정되며, 이미지가 가로 영역을 채우고 세로는 자르거나 비어 있을 수 있습니다.
  • 특징: 이미지 가로는 꽉 차지만, 세로는 비율에 맞게 조정됨.
  • Image.asset('assets/image.png', fit: BoxFit.fitWidth)

5. BoxFit.fitHeight

  • 이미지가 위젯의 세로 크기에 맞춰 크기가 조정됩니다. 가로 크기는 비율에 맞춰 조정되며, 이미지가 세로 영역을 채우고 가로는 자르거나 비어 있을 수 있습니다.
  • 특징: 이미지 세로는 꽉 차지만, 가로는 비율에 맞게 조정됨.
  • Image.asset('assets/image.png', fit: BoxFit.fitHeight)

6. BoxFit.none

  • 이미지의 원래 크기를 유지하며, 이미지가 위젯에 맞지 않으면 일부가 잘리거나 비어 있게 됩니다.
  • 특징: 이미지 크기는 변경되지 않으며, 위젯 영역에 맞지 않으면 일부가 잘림.
  • Image.asset('assets/image.png', fit: BoxFit.none)

7. BoxFit.scaleDown

  • 이미지가 원래 크기보다 커질 수는 없지만, 위젯에 맞게 줄어들 수 있습니다. 즉, 이미지는 원본 크기 이하로만 축소되고, 확대되지는 않습니다.
  • 특징: 이미지가 축소되지만 확대되지는 않음.
  • Image.asset('assets/image.png', fit: BoxFit.scaleDown)

요약:

  • BoxFit은 이미지를 위젯의 크기에 맞추는 방법을 제어하는 중요한 속성입니다.
  • 이미지의 왜곡 여부잘림 처리 여부 등을 설정할 수 있어 UI 디자인에서 매우 유용하게 사용됩니다.

어떤 BoxFit을 선택할지는 이미지가 보여져야 할 컨텍스트와 디자인 요구 사항에 따라 달라집니다. 예를 들어, 프로필 이미지나 사진 갤러리에서는 BoxFit.cover가 많이 사용되며, 전체 내용이 보이도록 하려면 BoxFit.contain이 더 적합할 수 있습니다.