apply_gaussian_blur
Apply a Gaussian blur effect to an image using a specified radius to control the blur intensity. Ideal for reducing noise, enhancing aesthetics, or focusing attention on specific elements.
Instructions
应用高斯模糊滤镜
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| image_source | Yes | 图片源,可以是文件路径或base64编码的图片数据 | |
| radius | Yes | 高斯模糊半径,值越大模糊效果越强 |
Implementation Reference
- tools/filters.py:234-287 (handler)Core handler function implementing the Gaussian blur effect using PIL's ImageFilter.GaussianBlur. Validates input, processes image with ImageProcessor, and returns JSON result.async def apply_gaussian_blur(image_data: str, radius: float) -> list[TextContent]: """ 应用高斯模糊滤镜 Args: image_data: 图片数据(base64编码) radius: 高斯模糊半径 Returns: 应用滤镜后的图片数据 """ try: # 验证参数 if not image_data: raise ValidationError("图片数据不能为空") if not validate_numeric_range(radius, 0.1, 10.0): raise ValidationError(f"高斯模糊半径必须在0.1-10.0范围内: {radius}") # 加载图片 image = processor.load_image(image_data) # 应用高斯模糊滤镜 blurred_image = image.filter(ImageFilter.GaussianBlur(radius)) # 输出处理后的图片 output_info = processor.output_image(blurred_image, "gaussian_blur") result = { "success": True, "message": f"高斯模糊滤镜应用成功: 半径 {radius}", "data": { **output_info, "filter_type": "gaussian_blur", "radius": radius, "size": image.size } } return [TextContent(type="text", text=json.dumps(result, ensure_ascii=False))] except ValidationError as e: error_result = { "success": False, "error": f"参数验证失败: {str(e)}" } return [TextContent(type="text", text=json.dumps(error_result, ensure_ascii=False))] except Exception as e: error_result = { "success": False, "error": f"高斯模糊滤镜应用失败: {str(e)}" } return [TextContent(type="text", text=json.dumps(error_result, ensure_ascii=False))]
- main.py:255-269 (registration)MCP tool registration using @mcp.tool() decorator. Wraps the filters.py implementation with safe_run_async and error handling.@mcp.tool() def apply_gaussian_blur( image_source: Annotated[str, Field(description="图片源,可以是文件路径或base64编码的图片数据")], radius: Annotated[float, Field(description="高斯模糊半径,值越大模糊效果越强", ge=0.1)] ) -> str: """应用高斯模糊滤镜""" try: result = safe_run_async(filters_apply_gaussian_blur(image_source, radius)) return result[0].text except Exception as e: return json.dumps({ "success": False, "error": f"应用高斯模糊失败: {str(e)}" }, ensure_ascii=False, indent=2)
- tools/filters.py:45-64 (schema)Explicit input schema definition for the apply_gaussian_blur tool in the get_filter_tools() function.Tool( name="apply_gaussian_blur", description="应用高斯模糊滤镜", inputSchema={ "type": "object", "properties": { "image_data": { "type": "string", "description": "图片数据(base64编码)" }, "radius": { "type": "number", "description": "高斯模糊半径(0.1-10.0)", "minimum": 0.1, "maximum": 10.0 } }, "required": ["image_data", "radius"] } ),