An Image Full: 847 Create

// Write to PNG const out = fs.createWriteStream('node_canvas_full_847.png'); const stream = canvas.createPNGStream(); stream.pipe(out); out.on('finish', () => console.log('✅ Canvas image saved')); – node-canvas uses cairo under the hood; ensure your host has sufficient shared memory ( /dev/shm ) if you scale to > 10 k px. 5.4 C# – SkiaSharp (Cross‑Platform) using SkiaSharp; using System.IO;

# 2️⃣ Allocate full canvas (filled with transparent black) canvas = Image.new(MODE, (WIDTH, HEIGHT), (0, 0, 0, 0)) 847 create an image full

// White circle paint = new SKPaint

# Fill with gradient (BGR order) for y in range(H): img[y, :, 0] = int(255 * (y / H)) # Blue channel img[y, :, 1] = 128 # Green channel img[y, :, 2] = int(255 * (1 - y / H)) # Red channel // Write to PNG const out = fs

// Create a new document that fills the canvas completely var doc = app.documents.add(W, H, 72, "FullImage847", NewDocumentMode.RGB, Document const stream = canvas.createPNGStream()

# 4️⃣ Add a centered circle center = (WIDTH // 2, HEIGHT // 2) radius = WIDTH // 4 draw.ellipse([center[0]-radius, center[1]-radius, center[0]+radius, center[1]+radius], outline=(255, 255, 255, 255), width=5)