# 按 S 存 JPG（檔名帶日期時間）

正式網址：https://newmediaart.course.monolab.world/snippets/save-jpg-datetime

按一下 S 就把畫面存成 JPG，檔名像 sketch-2026-09-29-1905-12.jpg，存再多張也不會互相蓋掉，還會照時間排好。

- **分類**：存檔與輸出
- **行數**：29 行（p5.js 1.x／2.x）
- **在哪一堂用到**：[第 1 堂](https://newmediaart.course.monolab.world/lesson/01)

把 keyPressed、pad、timestamp 三段貼到自己的 sketch 最下面；已經有 keyPressed 就把 if 那段併進去。在 OpenProcessing 要先點一下畫布，按鍵才會送進作品。

```js
// 按 S 存一張 JPG，檔名帶日期時間：sketch-2026-09-29-1905-12.jpg
function setup() {
  createCanvas(600, 600);
  background(20); // JPG 沒有透明：沒塗到的地方會變黑，先鋪一層底色
}

function draw() {
  // 你的作品畫在這裡（示範：跟著滑鼠畫半透明的圓）
  noStroke();
  fill(255, random(120, 220), 80, 90);
  circle(mouseX, mouseY, 40);
}

function keyPressed() {
  if (key === 's' || key === 'S') {
    saveCanvas('sketch-' + timestamp(), 'jpg');
  }
}

// 補零：7 → "07"。檔名長度一致，資料夾裡才會照時間排好
function pad(n) {
  return String(n).padStart(2, '0');
}

// 現在的日期時間：2026-09-29-1905-12（年-月-日-時分-秒）
function timestamp() {
  return year() + '-' + pad(month()) + '-' + pad(day()) + '-' +
    pad(hour()) + pad(minute()) + '-' + pad(second());
}
```

## 同類常用指令・存檔與輸出

- [按 S 存 PNG（透明背景）](https://newmediaart.course.monolab.world/snippets/save-png-transparent)
- [存高解析度圖（pixelDensity）](https://newmediaart.course.monolab.world/snippets/save-hires)
- [按 G 存 3 秒 GIF（saveGif）](https://newmediaart.course.monolab.world/snippets/save-gif)
- [按 V 錄 5 秒影片（WebM）](https://newmediaart.course.monolab.world/snippets/record-webm)

[回到全部常用指令](https://newmediaart.course.monolab.world/snippets)

[到 Hahow 報名](https://hahow.in/cr/creative-code)。價格與優惠以 Hahow 頁面為準。
