🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

feishu-image-sender

by @andersonhjb

飞书图片发送工具,支持系统截屏、区域截图和本地图片文件发送到飞书工作区,方便快速分享屏幕内容。

Versionv0.0.3
Downloads924
Stars1
Comments1
TERMINAL
clawhub install feishu-image-sent

📖 About This Skill

feishu-image-sender - 飞书图片发送技能

飞书图片发送工具,支持系统截图和本地图片发送到飞书。

📌 技能位置

统一管理目录: /opt/homebrew/lib/node_modules/openclaw/skills/feishu-image-sender/

功能特性

  • 🖥️ 系统截图 - 截取整个电脑屏幕
  • 📐 区域截图 - 支持指定截图区域
  • 🖼️ 本地图片发送 - 发送本地图片文件到飞书
  • 📱 即时发送 - 截图后可直接发送到飞书
  • 🎯 自动化流程 - 标准化的图片发送流程
  • 使用场景

  • 需要分享当前屏幕内容
  • 截取错误界面或问题截图
  • 制作教程或演示截图
  • 发送本地图片文件到飞书
  • 远程协助时分享屏幕
  • 核心功能

    1. 系统截图并发送

    # 完整的截图并发送流程
    def screenshot_and_send():
        # 1. 系统截图
        exec(command="/usr/sbin/screencapture -t png /tmp/screenshot.png")
        
        # 2. 移动到工作空间
        exec(command="cp /tmp/screenshot.png /Users/bornforthis/.openclaw/workspace/")
        
        # 3. 发送到飞书
        message(action="send", media="/Users/bornforthis/.openclaw/workspace/screenshot.png")
    

    2. 发送本地图片

    # 发送本地图片文件
    def send_local_image(image_path):
        # 检查文件是否存在
        if not os.path.exists(image_path):
            return "图片文件不存在"
        
        # 移动到工作空间(如果需要)
        workspace_path = "/Users/bornforthis/.openclaw/workspace/" + os.path.basename(image_path)
        exec(command=f"cp '{image_path}' '{workspace_path}'")
        
        # 发送到飞书
        message(action="send", media=workspace_path)
        return "图片发送成功"
    

    3. 交互式截图

    # 交互式区域截图
    def interactive_screenshot():
        exec(command="/usr/sbin/screencapture -i -c -t png /tmp/interactive_screenshot.png")
        exec(command="cp /tmp/interactive_screenshot.png /Users/bornforthis/.openclaw/workspace/")
        message(action="send", media="/Users/bornforthis/.openclaw/workspace/interactive_screenshot.png")
    

    使用方法

    方法1: 快速截图并发送

    # 使用feishu-image-screenshot命令快速截图并发送
    exec(command="feishu-image-screenshot")
    

    方法2: 发送指定图片

    # 发送指定路径的图片
    exec(command="feishu-image-send /path/to/image.png")
    

    方法3: 交互式截图

    # 交互式选择区域截图
    exec(command="feishu-image-interactive")
    

    参数说明

    截图参数

  • 格式: PNG (推荐,无损压缩)
  • 质量: PNG 保持最佳质量,适合技术截图
  • 延迟: 可添加延迟避免截取到快照界面
  • 区域: 支持全屏、交互式选择区域
  • 发送参数

  • 文件路径: 必须是工作空间目录下的文件
  • 文件格式: 支持 PNG、JPEG、GIF 等常见图片格式
  • 文件大小: 建议不超过 10MB
  • 最佳实践

    1. 使用 PNG 格式 - 保持最佳质量,适合技术截图 2. 添加适当延迟 - 避免截取到过渡状态 3. 文件命名规范 - 使用时间戳避免重复 4. 智能压缩 - 如果图片过大,会自动先压缩上传一次,再原图上传一次。小图片则不压缩直接发送。 5. 路径规范 - 文件必须保存到工作空间目录

    常见问题

    Q: 截图为空白

    A: 确保使用系统级截图命令,而不是浏览器截图

    Q: 截图模糊

    A: 使用 PNG 格式,避免 JPEG 压缩

    Q: 截图不完整

    A: 检查屏幕分辨率设置,使用全屏截图模式

    Q: 文件路径被拒绝

    A: 飞书发送时需要将文件移动到允许的目录,如工作空间目录

    Q: screencapture 命令找不到

    A: 在 macOS 上使用完整路径:
    /usr/sbin/screencapture -t png /tmp/screenshot.png
    

    示例脚本

    feishu-image-screenshot (截图并发送)

    #!/bin/bash
    

    飞书图片发送 - 系统截图并发送

    TIMESTAMP=$(date +%Y%m%d_%H%M%S) FILENAME="/tmp/screenshot_${TIMESTAMP}.png"

    截图

    /usr/sbin/screencapture -x -t png "$FILENAME"

    移动到工作空间

    cp "$FILENAME" "/Users/bornforthis/.openclaw/workspace/screenshot_${TIMESTAMP}.png"

    发送到飞书

    message(action="send", media="/Users/bornforthis/.openclaw/workspace/screenshot_${TIMESTAMP}.png")

    清理临时文件

    rm "$FILENAME"

    echo "截图已发送到飞书"

    feishu-image-send (发送指定图片)

    #!/bin/bash
    

    飞书图片发送 - 发送指定图片

    if [ $# -eq 0 ]; then echo "请提供图片路径" exit 1 fi

    IMAGE_PATH="$1" if [ ! -f "$IMAGE_PATH" ]; then echo "图片文件不存在: $IMAGE_PATH" exit 1 fi

    获取文件名

    FILENAME=$(basename "$IMAGE_PATH") WORKSPACE_PATH="/Users/bornforthis/.openclaw/workspace/$FILENAME"

    复制到工作空间

    cp "$IMAGE_PATH" "$WORKSPACE_PATH"

    发送到飞书

    message(action="send", media="$WORKSPACE_PATH")

    echo "图片已发送到飞书: $FILENAME"

    feishu-image-interactive (交互式截图)

    #!/bin/bash
    

    飞书图片发送 - 交互式截图

    TIMESTAMP=$(date +%Y%m%d_%H%M%S) FILENAME="/tmp/interactive_${TIMESTAMP}.png"

    交互式截图

    /usr/sbin/screencapture -i -t png "$FILENAME"

    if [ -f "$FILENAME" ]; then # 移动到工作空间 cp "$FILENAME" "/Users/bornforthis/.openclaw/workspace/interactive_${TIMESTAMP}.png" # 发送到飞书 message(action="send", media="/Users/bornforthis/.openclaw/workspace/interactive_${TIMESTAMP}.png") # 清理临时文件 rm "$FILENAME" echo "交互式截图已发送到飞书" else echo "用户取消截图" fi

    集成到OpenClaw

    在Python脚本中使用

    import subprocess

    def send_image_to_feishu(image_path): """发送图片到飞书""" # 复制到工作空间 workspace_path = "/Users/bornforthis/.openclaw/workspace/" + os.path.basename(image_path) subprocess.run(["cp", image_path, workspace_path]) # 发送到飞书 message(action="send", media=workspace_path)

    def take_screenshot_and_send(): """截图并发送到飞书""" import time timestamp = int(time.time()) temp_path = f"/tmp/screenshot_{timestamp}.png" workspace_path = f"/Users/bornforthis/.openclaw/workspace/screenshot_{timestamp}.png" # 截图 subprocess.run(["/usr/sbin/screencapture", "-x", "-t", "png", temp_path]) # 移动并发送 subprocess.run(["cp", temp_path, workspace_path]) message(action="send", media=workspace_path) # 清理 subprocess.run(["rm", temp_path])

    支持的图片格式

  • PNG - 无损压缩,推荐用于技术截图
  • JPEG - 有损压缩,适合照片类图片
  • GIF - 动图支持
  • WebP - 现代图片格式
  • BMP - 无压缩格式
  • 性能优化

    1. 文件大小控制 - 大图片建议压缩到10MB以内 2. 格式选择 - 技术截图用PNG,照片类用JPEG 3. 批量处理 - 支持批量发送多张图片 4. 缓存机制 - 避免重复发送相同图片


    注意: 此技能优先使用系统级截图方法,确保截图的真实性和完整性,并遵循标准化的图片发送流程。

    📋 Tips & Best Practices

    Q: 截图为空白

    A: 确保使用系统级截图命令,而不是浏览器截图

    Q: 截图模糊

    A: 使用 PNG 格式,避免 JPEG 压缩

    Q: 截图不完整

    A: 检查屏幕分辨率设置,使用全屏截图模式

    Q: 文件路径被拒绝

    A: 飞书发送时需要将文件移动到允许的目录,如工作空间目录

    Q: screencapture 命令找不到

    A: 在 macOS 上使用完整路径:
    /usr/sbin/screencapture -t png /tmp/screenshot.png