draw_line
Draw straight lines on Aseprite canvas by specifying start and end coordinates, color, and thickness for pixel art creation.
Instructions
Draw a line on the canvas.
Args: filename: Name of the Aseprite file to modify x1: Starting x coordinate y1: Starting y coordinate x2: Ending x coordinate y2: Ending y coordinate color: Hex color code (default: "#000000") thickness: Line thickness in pixels (default: 1)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | ||
| x1 | Yes | ||
| y1 | Yes | ||
| x2 | Yes | ||
| y2 | Yes | ||
| color | No | #000000 | |
| thickness | No |
Implementation Reference
- aseprite_mcp/tools/drawing.py:66-109 (handler)The draw_line handler function, which validates inputs, generates a Lua script using LuaBuilder, and executes it via Aseprite.
@mcp.tool() async def draw_line(filename: str, x1: int, y1: int, x2: int, y2: int, color: str = "#000000", thickness: int = 1) -> str: """Draw a line on the canvas. Args: filename: Name of the Aseprite file to modify x1: Starting x coordinate y1: Starting y coordinate x2: Ending x coordinate y2: Ending y coordinate color: Hex color code (default: "#000000") thickness: Line thickness in pixels (default: 1) """ try: # Validate inputs file_path = validate_file_path(filename, must_exist=True) color = validate_color(color) if thickness < 1: raise ValidationError("thickness", thickness, "Thickness must be at least 1") # Build Lua script builder = LuaBuilder() builder.add_line('local spr = app.activeSprite') builder.if_condition('not spr') builder.add_line('error("No active sprite")') builder.end_if() builder.add_line() builder.begin_transaction() builder.draw_line(x1, y1, x2, y2, color, thickness) builder.end_transaction() builder.save_sprite() # Execute script cmd = get_command() success, output = cmd.execute_lua_script(builder.build(), str(file_path)) return f"Line drawn successfully in {file_path}" except (ValidationError, AsepriteError) as e: return f"Failed to draw line: {e}" except Exception as e: return f"Unexpected error: {e}"