happytails.ai

Bulk Resize Images

Open Bulk Resize Images on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.

Tool capabilities

{
  "id": "bulk-resize-images",
  "category": "image-tools",
  "built": true,
  "requirements": "Up to 20 images and 20 MiB total; preserve aspect ratio; shrink only by default; report each output size; unique numbered filenames.",
  "implementation": {
    "fields": [
      {
        "key": "width",
        "label": "Maximum width (px)",
        "value": 1200,
        "type": "number",
        "min": 1,
        "max": 8192,
        "step": 1
      },
      {
        "key": "enlarge",
        "label": "Allow enlarging smaller images",
        "value": false,
        "type": "checkbox"
      }
    ],
    "files": true,
    "multiple": true,
    "input": false,
    "accept": ".png,.jpg,.jpeg,.webp",
    "maxFileBytes": 20971520,
    "note": "Runs on your device. Select up to 20 images. Aspect ratios and transparency are preserved. PNG output can be larger than a JPEG original.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Your text",
      "placeholder": "Type or paste your input…",
      "help": "Up to 1,000,000 characters. Review the settings before running.",
      "helpParts": [
        "Up to 1,000,000 characters.",
        "Review the settings before running."
      ],
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "POST /api/v1/tools/bulk-resize-images/run",
  "api": {
    "id": "bulk-resize-images",
    "name": "Bulk resize images",
    "category": "image-tools",
    "description": "Resize a batch of photos and download one ZIP.",
    "notes": "Runs on your device. Select up to 20 images. Aspect ratios and transparency are preserved. PNG output can be larger than a JPEG original.",
    "human_path": "/en/image-tools/bulk-resize-images/",
    "method": "POST",
    "endpoint": "/api/v1/tools/bulk-resize-images/run",
    "schema_url": "/api/v1/tools/bulk-resize-images",
    "input_schema": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "input": {
          "type": "string",
          "maxLength": 1000000,
          "default": "",
          "description": "Plain text input. File tools use files instead unless otherwise documented."
        },
        "options": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "width": {
              "type": "number",
              "description": "Maximum width (px)",
              "default": 1200.0,
              "minimum": 1,
              "maximum": 8192,
              "multipleOf": 1
            },
            "enlarge": {
              "type": "boolean",
              "description": "Allow enlarging smaller images",
              "default": false
            }
          }
        },
        "files": {
          "type": "array",
          "maxItems": 20,
          "items": {
            "type": "object",
            "required": [
              "name",
              "base64"
            ],
            "additionalProperties": false,
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200,
                "description": "Filename only, no path."
              },
              "mime": {
                "type": "string",
                "maxLength": 150
              },
              "bytes": {
                "type": "integer",
                "minimum": 0,
                "description": "Optional decoded byte count; must match content if supplied."
              },
              "base64": {
                "type": "string",
                "contentEncoding": "base64",
                "description": "File bytes as padded base64. Use the tool-specific limits.files_bytes value for the total decoded input size."
              }
            }
          }
        }
      }
    },
    "output_schema": {
      "type": "object",
      "required": [
        "tool",
        "result"
      ],
      "properties": {
        "tool": {
          "type": "string"
        },
        "result": {
          "type": "object",
          "required": [
            "text",
            "files"
          ],
          "properties": {
            "text": {
              "type": [
                "string",
                "null"
              ]
            },
            "data": {
              "description": "Parsed JSON when the textual result is JSON."
            },
            "name": {
              "type": "string"
            },
            "mime": {
              "type": "string"
            },
            "files": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name",
                  "mime",
                  "bytes",
                  "base64"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "mime": {
                    "type": "string"
                  },
                  "bytes": {
                    "type": "integer"
                  },
                  "base64": {
                    "type": "string",
                    "contentEncoding": "base64"
                  }
                }
              }
            }
          }
        }
      }
    },
    "processing": "Server; same transformation code as browser tools",
    "limits": {
      "request_bytes": 8388608,
      "input_characters": 1000000,
      "files_bytes": 5242880,
      "max_files": 20,
      "timeout_seconds": 12
    }
  },
  "agent_processing": "Server; same transformation code as browser tools",
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}

Page guide

Resize a batch of photos and download one ZIP.

How to use Bulk resize images
  1. Choose one or more images.
  2. Review the clearly labeled settings. Choose the action button to process your file.
  3. Compare the result with your original, then download it. Keep the original for further edits.

Useful next steps

What to expect

Resize a batch of photos and download one ZIP. Up to 20 images and 20 MiB total; preserve aspect ratio; shrink only by default; report each output size; unique numbered filenames.