Resize and crop images to exact platform-specific dimensions for social media, app stores, ads, and web. Supports 60+ platform presets including OG images, YouTube thumbnails, App Store screenshots, Play Store graphics, TikTok, Pinterest, Threads, Substack, Chrome Web Store, Notion covers, Instagram, Twitter, Dribbble, Bluesky, Product Hunt, LinkedIn, Facebook, and more. Uses ImageMagick for high-quality Lanczos resampling. Works on macOS, Linux, and Windows. Use this skill whenever the user wants to resize an image for a specific platform, create social media assets, generate app store screenshots, make thumbnails, create OG images, prepare images for upload, or batch-resize to multiple sizes. Also trigger when the user mentions any platform (YouTube, TikTok, Pinterest, App Store, Play Store, Substack, Threads, Chrome Web Store, Notion, etc.) in the context of image sizing, resizing, cropping, or preparation — even if they don't explicitly say "resize".
How this skill is triggered — by the user, by Claude, or both
Slash command
/ss-image-manipulation:ss-image-resizeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Resize and crop any image to exact dimensions for 60+ platform presets using ImageMagick's high-quality Lanczos resampling.
Resize and crop any image to exact dimensions for 60+ platform presets using ImageMagick's high-quality Lanczos resampling.
ImageMagick is required. If not installed:
brew install imagemagick # macOS
sudo apt install imagemagick # Debian/Ubuntu
Run the bundled script:
bash <skill-path>/scripts/resize.sh <input-image> [OPTIONS]
| Flag | Description | Default |
|---|---|---|
--platform NAME | Generate image for a specific platform preset | (required unless --all) |
--all | Generate images for every preset | off |
--category CAT | Generate all presets in a category (e.g. youtube, appstore) | — |
--output DIR | Output directory | ./resized/ |
--list | List all available platform presets and exit | — |
--fit | Fit image inside target (letterbox with padding) instead of cover-crop | off (cover-crop) |
--pad-color HEX | Padding color when using --fit (6-digit hex, no #) | FFFFFF |
--quality N | Output quality 1-100 | 92 |
The script knows these categories. For the full list of preset names and exact pixel dimensions, read references/platforms.md.
| Category | Presets |
|---|---|
| Web / SEO | og-image, blog-cover, notion-cover |
| Chrome Extension | chrome-screenshot, chrome-small-promo, chrome-marquee-promo |
| Ads | feed-ad, post-ad |
| Play Store | play-icon, play-feature, play-screenshot-5, play-screenshot-6 |
| App Store | appstore-iphone-15-pro-max, appstore-iphone-14-plus, appstore-iphone-14-pro, appstore-iphone-14, appstore-ipad-pro, appstore-mac, appstore-watch-ultra, appstore-watch-series |
| YouTube | youtube-profile, youtube-cover, youtube-thumbnail |
| TikTok | tiktok-profile, tiktok-video, tiktok-image-ad, tiktok-square-ad |
| pinterest-profile, pinterest-board-cover, pinterest-square, pinterest-medium, pinterest-long | |
| Substack | substack-featured, substack-logo, substack-email-banner, substack-social, substack-cover |
| Threads | threads-profile, threads-square, threads-carousel |
| instagram-feed-square, instagram-feed-portrait, instagram-stories, instagram-reels | |
| twitter-one-image, twitter-two-images, twitter-cover-photo, twitter-og | |
| Dribbble | dribbble-shot |
| Bluesky | bluesky-post, bluesky-cover, bluesky-cover-mobile |
| Product Hunt | producthunt-gallery, producthunt-thumbnail |
| linkedin-feed, linkedin-cover-business, linkedin-cover-personal, linkedin-stories | |
| facebook-news-feed, facebook-stories, facebook-cover-photo, facebook-og |
Single platform — OG image for a blog post:
bash <skill-path>/scripts/resize.sh hero.png --platform og-image
All YouTube sizes at once:
bash <skill-path>/scripts/resize.sh channel-art.png --category youtube --output ./youtube-assets/
Every platform preset from one source image:
bash <skill-path>/scripts/resize.sh brand-logo.png --all --output ./all-sizes/
Fit mode (letterbox instead of crop) with black padding:
bash <skill-path>/scripts/resize.sh screenshot.png --platform appstore-iphone-15-pro-max --fit --pad-color 000000
List available presets:
bash <skill-path>/scripts/resize.sh --list
The script uses a cover-crop strategy by default — the same approach image editors use for "fill" mode:
resize WxH^ with Lanczos filter)-gravity center -extent WxH)This means no distortion and no empty space — the image always fills the frame, cropping from the center if the aspect ratios differ.
With --fit, the strategy flips: the image is scaled to fit inside the target, then padded to exact dimensions with a solid color. This is useful for screenshots or images where you don't want anything cropped off.
--fit so UI elements at the edges aren't clipped.--fit avoids aggressive cropping.ImageMagick handles PNG, JPEG, TIFF, GIF, BMP, WebP, HEIC, and many more. Output format matches the input (a .png stays .png, a .jpg stays .jpg).
Files are saved as <platform-name>.<ext> in the output directory. For example:
resized/og-image.pngresized/youtube-thumbnail.jpgresized/appstore-iphone-15-pro-max.pngnpx claudepluginhub rajnandan1/such-skills --plugin ss-image-manipulationGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.