Image (이미지)
- 이미지를 표시하는 위젯
- 종류
- Image
- ImageProvider를 통해서 이미지 표시
- Image.asset
- AsetBundle을 통해서 이미지 표시
- Image.newwork
- URL을 통해서 이미지 표시
- Image.file
- File 클래스를 통한 이미지 표시
- Image.memory
- Uint8List 클래스를 통한 이미지 표시
- Image
- 참고
Image
- 주로 사용하는 속성
- ImageProvider<Object> image
- 표시할 이미지
- 필수
- Widget Function(BuildContext, Widget, int?, bool)? frameBuilder
- 이미지를 나타내는 위젯 생성을 담당하는 빌더 메소드
- 이미지가 사용가능할 때 페이드인 효과를 주거나,
이미지가 로드되는 동안의 표시를 해주는 등의 경우에
사용할 수 있다.
- Widget Function(BuildContext, Widget, ImageChunkEvent?)? loadingBuilder
- 이미지가 로드되는 동안 사용자에게 표시할 위젯을 지정하는 빌더 메소드
- Widget Function(BuildContext, Object, StackTrace?)? errorBuilder
- 이미지 로딩 중 오류가 발생하면 호출되는 빌더 메소드
- double? width
- 이미지의 가로 길이
- null일 경우 이미지 고유의 가로 길이만큼 지정된다.
- double? height
- 이미지의 세로 길이
- null일 경우 이미지 고유의 세로 길이만큼 지정된다.
- Animation<double>? opacity
- null이 아닐 경우 캔버스에 그리기 전에 애니메이션의 값에 투명도를 지정한다.
- Color? color
- colorBlendMode에 지정된 방법을 통해 이미지와 결합할 색상
- BlendMode? colorBlendMode
- 이미지와 color 속성에서 지정한 색상을 결합하는 방법
- BlendMode enum에 매우 다양한 방법이 명시되어 있다.
- BoxFit? fit
- 할당된 영역에 이미지의 크기를 할당하는 방법
- 종류
- BoxFit.contain
- 원본 크기 유지
- 비율의 변화가 없다.
- BoxFit.fill
- 지정한 영역을 꽉 채운다.
- 지정된 영역에 맞게 비율이 변경된다.
- 많이 사용되는 옵션이다.
- BoxFit.fitWidth
- 너비에 맞게 확대 및 축소가 이루어진다.
- 수평 기준으로 스케일링이 되기 떄문에 상하 여백이 발생한다.
- 일부 이미지가 잘릴 수도 있다.
- BoxFit.fitHeight
- 높이에 맞게 확대 및 축소가 이루어진다.
- 수직 기준으로 스케일링이 되기 떄문에 좌우 여백이 발생한다.
- 일부 이미지가 잘릴 수도 있다.
- BoxFit.cover
- 지정한 영역을 꽉 채운다.
- 비율의 변화가 없다.
- 일부 이미지가 잘릴 수도 있다.
- BoxFit.none
- 원본 크기 유지
- 원본으로부터 해당 영역 크기만큼 가운데를 출력한다.
- 일부 이미지가 잘릴 수도 있다.
- BoxFit.contain
- 기본 값 : BoxFit.none
- AlignmentGeometry alignment
- 영역 내에서 이미지를 정렬하는 방법
- 기본 값 : Alignment.center
- ImageRepeat repeat
- 영역 내에서 이미지를 제외한 공간을 그리는 방법
- 종류
- ImageRepeat.repeat
- 상자가 채워질 때까지 x 및 y 방향으로 이미지를 반복한다.
- ImageRepeat.repeatX
- 상자가 수평으로 채워질 때까지 x 방향으로 이미지를 반복한다.
- ImageRepeat.repeatY
- 상자가 수직으로 채워질 때까지 y 방향으로 이미지를 반복한다.
- ImageRepeat.noRepeat
- 채우지 않는다.
- ImageRepeat.repeat
- 기본 값 : ImageRepeat.noRepeat
- bool gaplessPlayback
- 이미지 제공자가 변경될 때의 동작
- true일 경우 이전 이미지를 계속 표시한다.
- false일 경우 잠시동안 아무것도 표시하지 않는다.
- 기본 값 : false
- bool isAntiAlias
- 안티 앨리어싱 사용 여부
- 기본 값 : false
- FilterQuality filterQuality
- 이미지의 렌더링 품질
- none → low → medium → hogh 순으로 품질이 좋아진다.
- 대신 품질을 올리는데 걸리는 시간이 그만큼 길어진다.
- 기본 값 : FilterQuality.low
- ImageProvider<Object> image
- 참고
안티 앨리어싱 (Anti Aliasing, AA)이란
높은 해상도의 신호를 낮은 해상도에서 나타낼 때 생기는 계단 현상(깨진 패턴)을
최소화하는 방법을 말한다.
Image.asset
- AssetBundle에서 얻는 ImageStream을 표시하는 위젯
- 주로 사용하는 속성
- String name
- 보여줄 이미지 파일의 경로 및 파일명을 지정한다.
- 명시한 경로는 pubspec.yaml 파일에 명시되어 있어야 한다.
- int? cacheWidth
- 실제로 랜더링될 이미지의 가로 길이
- int? cacheHeight
- 실제로 랜더링될 이미지의 세로 길이
- Image 생성자 설명 참고
- Widget Function(BuildContext, Widget, int?, bool)? frameBuilder
- Widget Function(BuildContext, Object, StackTrace?)? errorBuilder
- double? width
- double? height
- Color? color
- Animation<double>? opacity
- BlendMode? colorBlendMode
- BoxFit? fit
- AlignmentGeometry alignment
- ImageRepeat repeat
- bool isAntiAlias
- FilterQuality filterQuality
- String name
- 참고
Image.newwork
- 네트워크에서 얻는 ImageStream을 표시하는 위젯
- 주로 사용하는 속성
- String src
- 네트워크 상에 있는 이미지 파일의 주소
- Map<String, String>? headers
- 사용자 정의 HTTP 헤더
- 예시 :
httpHeaders: const { 'Accept': 'image/*', }
- int? cacheWidth
- 실제로 랜더링될 이미지의 가로 길이
- int? cacheHeight
- 실제로 랜더링될 이미지의 세로 길이
- Image 생성자 설명 참고
- Widget Function(BuildContext, Widget, int?, bool)? frameBuilder
- Function(BuildContext, Widget, ImageChunkEvent?)? loadingBuilder
- Widget Function(BuildContext, Object, StackTrace?)? errorBuilder
- double? width
- double? height
- Color? color
- Animation<double>? opacity
- BlendMode? colorBlendMode
- BoxFit? fit
- AlignmentGeometry alignment
- ImageRepeat repeat
- bool isAntiAlias
- FilterQuality filterQuality
- String src
- 참고
Image.file
- File 객체에서 얻은 ImageStream을 표시하는 위젯
- Android에서는 android.permission.READ_EXTERNAL_STORAGE 권한이 필요할 수 있다.
- 파일에서 이미지를 로드하면 ImageCache에 유지되는 파일의 메모리 복사본이 생성된다.
- 파일의 변경 사항은 모니터링되지 않는다.
- 파일이 변경된 경우 ImageCache에서 해당 항목을 제거해야 한다.
- 주로 사용하는 속성
- File file
- 보여줄 이미지에 대한 정보를 담고 있는 File 객체
- int? cacheWidth
- 실제로 랜더링될 이미지의 가로 길이
- int? cacheHeight
- 실제로 랜더링될 이미지의 세로 길이
- Image 생성자 설명 참고
- Widget Function(BuildContext, Widget, int?, bool)? frameBuilder
- Widget Function(BuildContext, Object, StackTrace?)? errorBuilder
- double? width
- double? height
- Color? color
- Animation<double>? opacity
- BlendMode? colorBlendMode
- BoxFit? fit
- AlignmentGeometry alignment
- ImageRepeat repeat
- bool isAntiAlias
- FilterQuality filterQuality
- File file
- 참고
Image.memory
- 주로 사용하는 속성
- Uint8List bytes
- JPEG, PNG, GIF, 애니메이션 GIF, WebP, 애니메이션 WebP, BMP 및 WBMP같은
이미지 형식으로 인코딩될 수 있는 인코딩된 이미지 바이트
- JPEG, PNG, GIF, 애니메이션 GIF, WebP, 애니메이션 WebP, BMP 및 WBMP같은
- int? cacheWidth
- 실제로 랜더링될 이미지의 가로 길이
- int? cacheHeight
- 실제로 랜더링될 이미지의 세로 길이
- Image 생성자 설명 참고
- Widget Function(BuildContext, Widget, int?, bool)? frameBuilder
- Widget Function(BuildContext, Object, StackTrace?)? errorBuilder
- double? width
- double? height
- Color? color
- Animation<double>? opacity
- BlendMode? colorBlendMode
- BoxFit? fit
- AlignmentGeometry alignment
- ImageRepeat repeat
- bool isAntiAlias
- FilterQuality filterQuality
- Uint8List bytes
- 참고