--- name: images description: Remotionでコンポーネントを使って画像を埋め込む metadata: tags: images, img, staticFile, png, jpg, svg, webp --- # Remotionで画像を使用する ## `` コンポーネント 画像を表示するには常に `remotion` の `` コンポーネントを使用します: ```tsx import { Img, staticFile } from "remotion"; export const MyComposition = () => { return ; }; ``` ## 重要な制限事項 **`remotion` の `` コンポーネントを使用する必要があります。** 以下は使用しないでください: - ネイティブHTMLの `` 要素 - Next.jsの `` コンポーネント - CSSの `background-image` `` コンポーネントはレンダリング前に画像が完全に読み込まれることを保証し、ビデオエクスポート中のちらつきや空白フレームを防ぎます。 ## staticFile()を使ったローカル画像 `public/` フォルダに画像を配置し、`staticFile()` で参照します: ``` my-video/ ├─ public/ │ ├─ logo.png │ ├─ avatar.jpg │ └─ icon.svg ├─ src/ ├─ package.json ``` ```tsx import { Img, staticFile } from "remotion"; ``` ## リモート画像 リモートURLは `staticFile()` なしで直接使用できます: ```tsx ``` リモート画像はCORSが有効になっている必要があります。 アニメーションGIFの場合は、代わりに `@remotion/gif` の `` コンポーネントを使用してください。 ## サイズと位置 `style` プロパティでサイズと位置を制御します: ```tsx ``` ## 動的な画像パス 動的なファイル参照にはテンプレートリテラルを使用します: ```tsx import { Img, staticFile, useCurrentFrame } from "remotion"; const frame = useCurrentFrame(); // 画像シーケンス // プロパティに基づいて選択 // 条件付き画像 ``` このパターンは以下に役立ちます: - 画像シーケンス(フレームごとのアニメーション) - ユーザー固有のアバターやプロフィール画像 - テーマに基づくアイコン - 状態依存のグラフィックス ## 画像サイズの取得 `getImageDimensions()` を使用して画像のサイズを取得します: ```tsx import { getImageDimensions, staticFile } from "remotion"; const { width, height } = await getImageDimensions(staticFile("photo.png")); ``` アスペクト比の計算やコンポジションのサイズ設定に便利です: ```tsx import { getImageDimensions, staticFile, CalculateMetadataFunction } from "remotion"; const calculateMetadata: CalculateMetadataFunction = async () => { const { width, height } = await getImageDimensions(staticFile("photo.png")); return { width, height, }; }; ```