Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计异常

adobe-resize-photos-and-videosadobe 调整照片和视频大小

Agent Skill

用于辅助图像生成、图片编辑、视觉素材处理或图像模型工作流。它适合让 Agent 根据文本生成图片、处理背景、整理视觉提示词或调用相关图像工具。使用时需要确认输入图片、版权来源、输出格式和模型限制;涉及人物、品牌、商品或公开展示素材时,应额外核对授权、真实性和内容合规边界。

总安装

1,053

周安装

43

GitHub Stars

55

下载量

337
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:adobe-resize-photos-and-videos(adobe 调整照片和视频大小)
来源仓库:https://github.com/adobe/skills
仓库路径:skills/adobe-resize-photos-and-videos
安装命令:
npx skills add https://github.com/adobe/skills --skill adobe-resize-photos-and-videos
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/adobe/skills --skill adobe-resize-photos-and-videos

简介

用于调整图像和视频的尺寸、比例或预设尺寸,适用于多种媒体格式转换。

  • 支持批量处理、裁切重设、预览输出,并可集成到 PSD/AI 文档渲染流程中。
  • 使用步骤包括上传资产、搜索文件、裁剪缩放、预览结果并上传至 Creative Cloud。
  • 安装命令:npx skills add https://github.com/adobe/skills --skill adobe-resize-photos-and-videos。
  • 注意:涉及人物、品牌或商用素材时需核对版权授权,输出格式应符合平台要求。

SKILL.md

Adobe Resize Photos and Videos

Resizes images or videos to user-specified dimensions, aspect ratio, or named size. For social media platform sets (Instagram, TikTok, etc.) → use the adobe-create-social-variations skill instead.


Tool Reference

StepToolNotes
Open file pickerasset_add_fileReturns presignedAssetUrl, assetId, and mediaType
Find asset in CCasset_searchRe-stage result via asset_add_file for image; use id directly for video
Render PSD/AIdocument_render_vectorConverts to JPEG before resize
Resize imageimage_crop_and_resizeOne call per dimension; reframe by default
Preview outputsasset_preview_fileAll outputs in a single call
Upload to CC (start)asset_initialize_file_uploadFirst call in block upload pipeline
Upload to CC (finish)asset_finalize_file_uploadSecond call; returns presigned CC URL for board
Create Firefly boardcreate_firefly_boardPass import_adobe_storage with finalize URL
Resize videovideo_resizeReturns statusId for polling
Poll video resizeresizeVideoPollDeferred tool — load before calling

Workflow

Step 0 — Initialize Adobe Tools

Call adobe_mandatory_init first. This returns file handling rules and tool routing guidance required for the rest of the workflow.

{ "skill_name": "adobe-resize-photos-and-videos", "skill_version": "1.0.1" }

Step 1 — Entitlement Check

Now that adobe_mandatory_init confirmed that the "Adobe for creativity" connector is live, check which tools are available through the "Adobe for creativity" connector by cross checking against the Tool Reference table above.


IMMEDIATE ACTION REQUIRED

Step 1: If parameters are missing or ambiguous → run the multi-step intake (Step 2 below). Step 2: If no file is uploaded, run Step 3 (asset_add_file({})). Step 3: Detect image vs. video and route to the correct workflow (Step 5 Image/Video).


Step 2 — Multi-Step Intake

Run this when the user hasn't provided complete parameters (type + dimensions + fit mode). Skip entirely if the user's message already contains all three.

Use AskUserQuestion to collect parameters step by step.

Step 2a — Type

AskUserQuestion([{
  question: "Photo or video?",
  type: "single_select",
  options: ["Photo", "Video"]
}])

Step 2b — Dimensions

If Photo (multi_select — user can pick one or more):

AskUserQuestion([{
  question: "Dimensions — select all you need",
  type: "multi_select",
  options: [
    "1080 × 1080 — Instagram square",
    "1080 × 1350 — Instagram portrait",
    "1080 × 1920 — Stories / Reels",
    "1920 × 1080 — YouTube / landscape",
    "1280 × 720 — YouTube thumbnail",
    "1200 × 675 — X / Twitter post",
    "1200 × 630 — Facebook / OG image",
    "1080 × 566 — LinkedIn post",
    "2560 × 1440 — YouTube banner",
    "3840 × 2160 — 4K / UHD",
    "400 × 400 — Profile / avatar",
    "2480 × 3508 — A4 print (300 dpi)",
    "Custom — I'll type it"
  ]
}])

If user includes "Custom" → follow up: "Enter your custom dimensions (e.g. 1500×800):"

If user selects multiple presets → run image_crop_and_resize once per dimension, using the same source URI and parameters each time. Preview all outputs together at the end.

If Video (multi_select — user can pick one or more):

AskUserQuestion([{
  question: "Dimensions — select all you need",
  type: "multi_select",
  options: [
    "1080 × 1920 — Reels / TikTok / Stories",
    "1920 × 1080 — YouTube / landscape",
    "1080 × 1080 — Square post",
    "1280 × 720 — YouTube 720p",
    "3840 × 2160 — 4K / UHD",
    "854 × 480 — SD / 480p",
    "Custom — I'll type it"
  ]
}])

If user selects multiple video presets → submit a separate video_resize job per dimension, poll each to completion, preview all outputs together.

Step 2c — Fit mode

If Photo (single_select):

AskUserQuestion([{
  question: "Fit mode",
  type: "single_select",
  options: [
    "Reframe — crop to fill",
    "Pad — letterbox, no crop",
    "Extract — isolate subject"
  ]
}])

If Video (single_select):

AskUserQuestion([{
  question: "Fit mode",
  type: "single_select",
  options: [
    "Letterbox — preserve ratio",
    "Crop — fill, no bars",
    "Stretch — force exact (distort)"
  ]
}])

Step 2d — Smart focus (Photo only)

AskUserQuestion([{
  question: "Smart focus — where should the crop center?",
  type: "single_select",
  options: [
    "Subject",
    "Face / portrait",
    "Upper body",
    "Center (geometric)",
    "Named object — I'll describe it"
  ]
}])

If user selects "Named object" → follow up: "Describe the object (e.g. 'the red car', 'the logo'):"

Step 2e — Options (Photo only)

AskUserQuestion([{
  question: "Any additional options?",
  type: "multi_select",
  options: [
    "Batch — multiple images",
    "Output: JPEG",
    "Output: PNG"
  ]
}])

Step 2f — Source (Video only)

AskUserQuestion([{
  question: "Where is the video?",
  type: "single_select",
  options: [
    "Upload from device",
    "From Creative Cloud"
  ]
}])

Step 3 — Get the Source File

Critical — /mnt/user-data/uploads/ paths are NOT usable URLs. Even when the user has attached a file and it appears in context at a /mnt/user-data/uploads/ path, you cannot pass this path to any Adobe tool. Call asset_add_file() to stage the file — /mnt/user-data/uploads/ paths are not fetchable by Adobe tools.

WRONG  ❌  imageURI: "/mnt/user-data/uploads/photo.jpg"
WRONG  ❌  imageURI: "file:///mnt/user-data/uploads/photo.jpg"
CORRECT ✅  call asset_add_file() → use presignedAssetUrl from picker context

No file yet → open the picker immediately:

asset_add_file()

Detect type from returned mediaType:

  • image/* → IMAGE WORKFLOW
  • video/* → VIDEO WORKFLOW

Step 4 — Resolve Target Dimensions

User saysResolve to
1920×1080, 1920x1080width: 1920, height: 1080
4K3840 × 2160
HD, 1080p1920 × 1080
720p1280 × 720
480p854 × 480
A4 print2480 × 3508 (300 DPI portrait)
Letter print2550 × 3300 (300 DPI portrait)
16:9, 1:1, 4:5, 9:16ratio string → pass as output: "16:9"
squareoutput: "1:1"
Width only (800px wide)width: 800, use ratio string to maintain aspect

If no target was specified in the form AND none in the user's message → ask:

"What dimensions do you need? (e.g. 1920×1080, A4, 16:9)"

IMAGE WORKFLOW

Step 5 (Image) — Valid URI Sources

Only these work as imageURI:

  • presignedAssetUrl from asset_add_file()
  • outputUrl from a prior tool call ✅
  • Public HTTPS URL provided by user ✅

Not usable as imageURI:

  • /mnt/user-data/uploads/ paths ❌
  • renditionURL from asset_search directly ❌
  • file:// URIs ❌
SourceResolution
Uploaded fileasset_add_file()presignedAssetUrl
CC storage assetasset_search → re-stage via asset_add_file()presignedAssetUrl
Prior tool outputUse outputUrl directly
PSD / AI filedocument_render_vector (JPEG, 300 DPI) → outputPresignedUrl

Step 6 (Image) — Fit Mode

IntentModeNotes
"resize to WxH" / defaultreframeLargest crop at target ratio, centered — no distortion
"no cropping", "letterbox", "fit inside"padFills empty space with white
"isolate subject", "tight crop"extractTight crop around detected region

Default: reframe. Change only when user is explicit.

fit: "extract" is incompatible with an explicit {width, height} — it stretches the image. Use a ratio string or omit output.

Step 7 (Image) — Call image_crop_and_resize

image_crop_and_resize({
  imageURI: presignedAssetUrl,
  options: {
    output: { width: 1920, height: 1080 },  // or "16:9"
    fit: "reframe",
    focus: "subject",  // or "face", "upper_body", { prompt: "the car" }, { x:0.5, y:0.5 }
    quality: 7
  },
  outputFileType: "jpeg"  // or "png" if transparency needed
})
// result.outputUrl → use for preview or chaining

Focus guide:

  • "subject" — default; full-body detection, landscapes, objects
  • "face" — portraits, headshots
  • "upper_body" — chest-up crops
  • {prompt: "the logo"} — named object from user's form input
  • {x: 0.5, y: 0.5} — geometric center (no clear subject)

Step 8 (Image) — Batch

If batch was selected in the form OR the user provided multiple files:

  1. Call asset_add_file() for each file to get individual presigned URLs
  2. Call image_crop_and_resize for each with the same parameters
  3. Collect all outputUrl values
  4. Call asset_preview_file with all outputs in a single call
Calls run sequentially in this environment. For >10 images, confirm with the user before starting.

Pagination across turns (batches >20): For large batches, the conversation context may fill before all images are processed, causing Claude to pause mid-batch. This is expected — not an error. When it happens:

  • State how many have been completed and how many remain (e.g. "20 / 24 done — say 'continue' for the rest")
  • Wait for the user to confirm before resuming
  • On resume, pick up from the next unprocessed image and continue to the end
  • Preview all outputs together only after the final image completes

Step 9 (Image) — Preview + Deliver + Firefly Board

asset_preview_file({
  assets: [
    { name: "photo_1920x1080.jpg", presignedAssetUrl: result.outputUrl },
    // all successful outputs
  ]
})

Save to CC + Create Firefly Board

After preview, upload each output to CC storage using the block upload pipeline (asset_initialize_file_upload → PUT chunk → asset_finalize_file_upload).

Then call the firefly board tool with the final output urls:

create_firefly_board({
  import_adobe_storage: [
    final_output_url_1,
    final_output_url_2,
    // ...
  ]
})
Confirmed working (Stage): import_adobe_storage with presigned URLs from asset_finalize_file_upload successfully populates boards. ❌ Does not work: import_generic_assets with CC URNs (urn:aaid:sc:US:...) — USS indexing lag causes blank boards. If board creation fails or the URL is malformed, omit the board link (retrying does not help).

Post the completion summary after the board step:

✅ Done! [N] image(s) resized and ready.

📥 Download:
• resized_1920x1080.jpg → <cc_storage_url>
[list individually if N ≤ 3, or single folder link if N > 3]

🎨 View in Firefly Board → <board_url>   ← omit if board creation failed

VIDEO WORKFLOW

Step 5 (Video) — Get Asset ID

Video tools require assetId, not a URL.

SourceHow
Upload via asset_add_fileUse returned assetId
CC storageasset_search with filters.mediaType: "video/mp4" → use asset id

Step 6 (Video) — Common Targets

NameDimensions
4K / UHD3840 × 2160
1080p / HD1920 × 1080
720p1280 × 720
480p854 × 480
Vertical 9:161080 × 1920
Square 1:11080 × 1080

Step 7 (Video) — Call video_resize

⚠️ resizeVideoPoll is a deferred tool — load it first before attempting to poll. Direct calls without loading will fail with "not loaded" error.
video_resize({
  assetId: videoAssetId,
  width: targetW,
  height: targetH,
  mode: "letterbox"  // default; see mode table below
})
// Returns { jobStatus: "pending", statusId }

Mode — use exact API values (not user-facing labels):

User saysAPI valueBehavior
"fit", "preserve ratio", "letterbox""letterbox"Preserves ratio, adds black bars (default)
"fill", "crop to fill", "no bars""crop"Crops edges to fill target exactly
"stretch", "force exact""stretch"Distorts to exact target
ℹ️ Auto-reframe for video is not available in Claude yet, but new tools are being added all the time. If you need more control, try using Adobe Premiere.

Polling: load the deferred tool resizeVideoPoll before calling it — direct calls fail with "not loaded".

// Step 1: load the deferred tool resizeVideoPoll
// Step 2: poll until complete
resizeVideoPoll({ statusId })
// Repeat until jobStatus === "completed"
// Show progress % to user while waiting

Step 8 (Video) — Preview + Deliver + Firefly Board

If polling succeeds and returns outputUrl, upload to CC storage via the block upload pipeline (asset_initialize_file_upload → PUT → asset_finalize_file_upload) to get a presigned URL, then:

asset_preview_file({
  assets: [{ name: "resized_video.mp4", presignedAssetUrl: result.outputUrl }]
})

create_firefly_board({
  import_adobe_storage: [ presignedAssetUrl_from_finalize ]
})
✅ Pass import_adobe_storage with the finalize presigned URL. If board creation fails, omit the link.
✅ Done! Video resized to [WxH].

📥 Download → <cc_storage_url>

🎨 View in Firefly Board → <board_url>   ← omit if board creation failed

If polling is unavailable → skip preview, deliver the CC storage fallback message from Step 7.


Error Handling

ErrorAction
/mnt/user-data/uploads/ or file:// passed as URIStop. Call asset_add_file() first.
Image too large after resizeRe-run with quality: 5
Video assetId not foundRe-upload via asset_add_file
Source too small for targetWarn user upscaling won't add detail; proceed if confirmed
Invalid video_resize modeAPI only accepts "letterbox", "crop", or "stretch""fit" and "fill" will be rejected.
extract + {W,H} → stretchingSwitch to reframe
No dimensions givenRender form or ask explicitly before calling any tool
Unsupported formatAsk user to export as JPG/PNG (images) or MP4 (video)
resizeVideoPoll not loaded / unavailableKnown gap in current connector. Skip polling. Tell user to check CC Files for output.

Common Dimension Reference

Use CaseDimensions
Full HD / web hero1920 × 1080
4K3840 × 2160
Web thumbnail1280 × 720
Square1080 × 1080
A4 print (300 DPI)2480 × 3508
US Letter print (300 DPI)2550 × 3300
Blog featured image1200 × 630
Email header600 × 200
Avatar / profile400 × 400
Instagram portrait1080 × 1350
Stories / Vertical1080 × 1920

Assets

assets/intake-form.html — Interactive intake form for resize parameters. Render at the start of any resize workflow where parameters are missing or ambiguous. Covers photo (target size, fit mode, smart focus, batch, output format) and video (target size, fit mode, source).

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.58%
按下载量换算117

Claude

30.97%
按下载量换算104

Cursor

16.21%
按下载量换算55

Gemini CLI

9%
按下载量换算30

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

未通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills