Skip to main content
Glama

convert_format

Change image formats (PNG, JPEG, WEBP, BMP, TIFF, GIF) easily by specifying the source and desired format. Adjust quality for JPEG outputs. Part of the Image Processing MCP Server.

Instructions

转换图片格式

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
image_sourceYes图片源,可以是文件路径或base64编码的图片数据
qualityNo图片质量,范围 1-100,仅对 JPEG 格式有效
target_formatYes目标格式:PNG、JPEG、WEBP、BMP、TIFF、GIF 等

Implementation Reference

  • Core handler function that implements the image format conversion logic: validates inputs, loads image using ImageProcessor, outputs in target format with quality, returns JSON result with file reference.
    async def convert_format(image_source: str, target_format: str, quality: int = 95) -> list[TextContent]: """ 转换图片格式 Args: image_source: 图片源(文件路径或base64编码数据) target_format: 目标格式 quality: 图片质量 Returns: 转换后的图片文件引用 """ try: # 验证参数 if not image_source or not target_format: raise ValidationError("图片源和目标格式不能为空") if not validate_image_format(target_format): raise ValidationError(f"不支持的目标格式: {target_format}") if not (1 <= quality <= 100): raise ValidationError("图片质量必须在1-100之间") # 加载图片 image = processor.load_image(image_source) # 获取原始格式 original_format = image.format or 'PNG' # 输出转换后的图片 output_info = processor.output_image(image, f"convert_to_{target_format.lower()}", target_format, quality) result = { "success": True, "message": f"图片格式转换成功: {original_format} -> {target_format}", "data": { **output_info, "original_format": original_format, "target_format": target_format, "quality": quality } } 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:152-166 (registration)
    MCP tool registration using @mcp.tool() decorator. This wrapper function calls the core handler from tools.basic and handles errors, providing the schema via Annotated Fields.
    @mcp.tool() def convert_format( image_source: Annotated[str, Field(description="图片源,可以是文件路径或base64编码的图片数据")], target_format: Annotated[str, Field(description="目标格式:PNG、JPEG、WEBP、BMP、TIFF、GIF 等")], quality: Annotated[int, Field(description="图片质量,范围 1-100,仅对 JPEG 格式有效", ge=1, le=100, default=95)] ) -> str: """转换图片格式""" try: result = safe_run_async(basic_convert_format(image_source, target_format, quality)) return result[0].text except Exception as e: return json.dumps({ "success": False, "error": f"转换图片格式失败: {str(e)}" }, ensure_ascii=False, indent=2)
  • Input schema definition for the convert_format tool as part of get_basic_tools(), specifying parameters and validation rules.
    Tool( name="convert_format", description="转换图片格式", inputSchema={ "type": "object", "properties": { "image_data": { "type": "string", "description": "图片数据(base64编码)" }, "target_format": { "type": "string", "description": "目标格式(PNG, JPEG, BMP, TIFF, WEBP)" }, "quality": { "type": "integer", "description": "图片质量(1-100,仅对JPEG有效)", "minimum": 1, "maximum": 100, "default": 95 } }, "required": ["image_data", "target_format"] } )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/duke0317/ps-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server