flip_image
Flip images horizontally or vertically using 'flip_image' on the Image Processing MCP Server. Input an image source and specify the direction for precise transformations.
Instructions
翻转图片
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| direction | Yes | 翻转方向:horizontal(水平翻转)或 vertical(垂直翻转) | |
| image_source | Yes | 图片源,可以是文件路径或base64编码的图片数据 |
Implementation Reference
- tools/transform.py:353-410 (handler)Core asynchronous handler function that loads the image, performs horizontal or vertical flip using PIL's transpose method, processes output via ImageProcessor, and returns JSON result.async def flip_image(image_data: str, direction: str) -> list[TextContent]: """ 翻转图片 Args: image_data: 图片数据(base64编码) direction: 翻转方向(horizontal, vertical) Returns: 翻转后的图片数据 """ try: # 验证参数 if not image_data: raise ValidationError("图片数据不能为空") if direction not in ['horizontal', 'vertical']: raise ValidationError(f"无效的翻转方向: {direction}") # 加载图片 image = processor.load_image(image_data) # 翻转图片 if direction == 'horizontal': flipped_image = image.transpose(Image.FLIP_LEFT_RIGHT) direction_desc = "水平翻转" else: # vertical flipped_image = image.transpose(Image.FLIP_TOP_BOTTOM) direction_desc = "垂直翻转" # 输出翻转后的图片 output_info = processor.output_image(flipped_image, f"flip_{direction}") result = { "success": True, "message": f"图片{direction_desc}成功", "data": { **output_info, "direction": direction, "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:223-237 (registration)MCP tool registration using @mcp.tool() decorator. This synchronous wrapper calls the async handler from tools.transform via safe_run_async and handles errors.@mcp.tool() def flip_image( image_source: Annotated[str, Field(description="图片源,可以是文件路径或base64编码的图片数据")], direction: Annotated[str, Field(description="翻转方向:horizontal(水平翻转)或 vertical(垂直翻转)")] ) -> str: """翻转图片""" try: result = safe_run_async(transform_flip_image(image_source, direction)) return result[0].text except Exception as e: return json.dumps({ "success": False, "error": f"翻转图片失败: {str(e)}" }, ensure_ascii=False, indent=2)
- tools/transform.py:108-126 (schema)Tool schema definition including input schema with properties for image_data (base64 string) and direction (enum: horizontal, vertical). Part of get_transform_tools().Tool( name="flip_image", description="翻转图片", inputSchema={ "type": "object", "properties": { "image_data": { "type": "string", "description": "图片数据(base64编码)" }, "direction": { "type": "string", "description": "翻转方向(horizontal, vertical)", "enum": ["horizontal", "vertical"] } }, "required": ["image_data", "direction"] } )
- main.py:224-227 (schema)Input schema inferred from Annotated parameters in the MCP tool function signature (image_source: str, direction: str).def flip_image( image_source: Annotated[str, Field(description="图片源,可以是文件路径或base64编码的图片数据")], direction: Annotated[str, Field(description="翻转方向:horizontal(水平翻转)或 vertical(垂直翻转)")] ) -> str: