# Remotion Rule: Images > Remotion skill rule: Embedding images in Remotion using the component. Part of the official Remotion Agent Skill for programmatic video in React. ## Install Save the content below to `.claude/skills/` or append to your `CLAUDE.md`: ## Quick Use ```bash npx skills add remotion-dev/skills ``` This rule activates automatically when working with images in a Remotion project. --- ## Intro Embedding images in Remotion using the component. Part of the [Remotion AI Skill](https://tokrepo.com/en/workflows/57997ead-c8fa-409c-916f-28bbc0adc8d9) — the official Agent Skill for programmatic video creation in React. **Best for**: Developers using Remotion for images **Works with**: Claude Code, OpenAI Codex, Cursor --- ## Rule Content # Using images in Remotion ## The `` component Always use the `` component from `remotion` to display images: ```tsx import { Img, staticFile } from "remotion"; export const MyComposition = () => { return ; }; ``` ## Important restrictions **You MUST use the `` component from `remotion`.** Do not use: - Native HTML `` elements - Next.js `` component - CSS `background-image` The `` component ensures images are fully loaded before rendering, preventing flickering and blank frames during video export. ## Local images with staticFile() Place images in the `public/` folder and use `staticFile()` to reference them: ``` my-video/ ├─ public/ │ ├─ logo.png │ ├─ avatar.jpg │ └─ icon.svg ├─ src/ ├─ package.json ``` ```tsx import { Img, staticFile } from "remotion"; ; ``` ## Remote images Remote URLs can be used directly without `staticFile()`: ```tsx ``` Ensure remote images have CORS enabled. For animated GIFs, use the `` component from `@remotion/gif` instead. ## Sizing and positioning Use the `style` prop to control size and position: ```tsx ``` ## Dynamic image paths Use template literals for dynamic file references: ```tsx import { Img, staticFile, useCurrentFrame } from "remotion"; const frame = useCurrentFrame(); // Image sequence // Selecting based on props // Conditional images ``` This pattern is useful for: - Image sequences (frame-by-frame animations) - User-specific avatars or profile images - Theme-based icons - State-dependent graphics ## Getting image dimensions Use `getImageDimensions()` to get the dimensions of an image: ```tsx import { getImageDimensions, staticFile } from "remotion"; const { width, height } = await getImageDimensions(staticFile("photo.png")); ``` This is useful for calculating aspect ratios or sizing compositions: ```tsx import { getImageDimensions, staticFile, CalculateMetadataFunction, } from "remotion"; const calculateMetadata: CalculateMetadataFunction = async () => { const { width, height } = await getImageDimensions(staticFile("photo.png")); return { width, height, }; }; ``` --- ## Source & Thanks > Created by [Remotion](https://github.com/remotion-dev). Licensed under MIT. > [remotion-dev/skills](https://github.com/remotion-dev/skills) — Rule: `images` Part of the [Remotion AI Skill](https://tokrepo.com/en/workflows/57997ead-c8fa-409c-916f-28bbc0adc8d9) collection on TokRepo. --- Source: https://tokrepo.com/en/workflows/1a28261c-a575-4689-9773-7030db505890 Author: Skill Factory