世界最大級のオンライン学習サービス「Udemy(ユーデミー)」とは?

【Flutter】背景画像をぼかす(ブラー)エフェクトを実装

Flutterで背景画像をぼかす(ブラー)エフェクトを実装する方法を紹介します。

今回はImageFilteredを使用して画像をぼかしていきます。

目次

背景画像をぼかす方法

まずはImageFilteredを使用するためにdart:uiをインポートします。

import 'dart:ui';

次にImageFilteredの子ウィジェットで背景画像をぼかしたいウィジェットを指定します。

imageFilterImageFilter.blur()を渡し、ImageFilter.blur()sigmaXsigmaYにdouble値を渡してぼかしを調整します。

ImageFiltered(
  imageFilter: ImageFilter.blur(sigmaX: 15, sigmaY: 15),
  child: Image.network(
    'https://images.unsplash.com/photo-1627376617965-b8c29ca91aca',
  ),
)

sigmaXsigmaYの値が0の場合はぼかしのないデフォルトの画像となり、値が高ければ高いほど画像がぼけて表示されます。

sigmaX: 0, sigmaY: 0
sigmaX: 5, sigmaY: 5
sigmaX: 15, sigmaY: 15

サンプルコード

import 'dart:ui';

import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Flutter')),
        body: BackdropFilterExample(),
      ),
    );
  }
}

class BackdropFilterExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Padding(
        padding: const EdgeInsets.all(30),
        child: ImageFiltered(
          imageFilter: ImageFilter.blur(sigmaX: 15, sigmaY: 15),
          child: Image.network(
              'https://images.unsplash.com/photo-1627376617965-b8c29ca91aca'),
        ),
      ),
    );
  }
}

合わせて読みたい

参考サイト

目次