# System.Drawing

**Kind:** Service

**Source:** `Pams/HelperTool/HelperTool.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`System.Drawing` is a NuGet package dependency declared by `Pams/HelperTool/HelperTool.csproj`. It makes .NET drawing APIs available to the HelperTool project when the project is restored and built.

## Diagram

```mermaid
sequenceDiagram
    participant Node as TypeScript caller
    participant HelperTool as HelperTool project
    participant Drawing as System.Drawing package

    Node->>HelperTool: Run dotnet project command
    HelperTool->>Drawing: Access drawing APIs
    Drawing-->>HelperTool: Return drawing operation result
    HelperTool-->>Node: Return process output
```

## Usage

```ts
import { spawn } from "node:child_process";

const helperTool = spawn(
  "dotnet",
  [
    "run",
    "--project",
    "Pams/HelperTool/HelperTool.csproj",
    "--",
    "input.png",
  ],
  { stdio: "inherit" },
);

helperTool.on("exit", (code) => {
  if (code !== 0) {
    throw new Error(`HelperTool exited with code ${code}`);
  }
});
```

## AI Coding Instructions

- Keep the `System.Drawing` package reference in `Pams/HelperTool/HelperTool.csproj` when HelperTool code imports drawing namespaces.
- Restore NuGet dependencies before building or running HelperTool.
- Add drawing logic in the .NET HelperTool project; TypeScript callers should invoke the tool as a process.
- Keep command-line arguments and output handling aligned between the TypeScript caller and HelperTool.

## Used by

1 reference from 1 file. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (1)

- `HelperTool` — `Pams/HelperTool/HelperTool.csproj`:1
