aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bluebey-studio/src/panel.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bluebey-studio/src/panel.js')
-rw-r--r--public/bluebey-studio/src/panel.js11
1 files changed, 10 insertions, 1 deletions
diff --git a/public/bluebey-studio/src/panel.js b/public/bluebey-studio/src/panel.js
index db784cb..c798d42 100644
--- a/public/bluebey-studio/src/panel.js
+++ b/public/bluebey-studio/src/panel.js
@@ -2109,7 +2109,7 @@ export function buildPanel(app, root) {
const exportSection = section(tabExport, '画像');
exportSection.add(segmented({
- label: 'PNGの大きさ',
+ label: '画像の大きさ',
options: [
{ value: '1', label: '1倍' },
{ value: '2', label: '2倍' },
@@ -2122,9 +2122,17 @@ export function buildPanel(app, root) {
exportSection.add(buttons({
items: [
{ id: 'png', label: 'PNGを保存', primary: true, onClick: () => app.actions.savePNG() },
+ { id: 'jpg', label: 'JPGを保存', onClick: () => app.actions.saveJPG() },
{ id: 'copy', label: 'クリップボードにコピー', onClick: () => app.actions.copyPNG() },
],
}));
+ const jpgQualitySlider = slider({
+ label: 'JPGの画質', min: 0.5, max: 1, step: 0.01, value: 0.9,
+ format: (v) => `${Math.round(v * 100)}%`,
+ onInput: (v) => { state.render.jpgQuality = v; },
+ });
+ exportSection.add(jpgQualitySlider.el);
+ exportSection.add(hint('JPG は PNG よりファイルが小さくなります(写真の背景を入れた絵に向いています)。JPG は透明にできないので、背景は「紙の色」で塗られます。'));
const transparentCheck = check({
label: 'PNGの背景を透明にする', value: false,
onChange: (v) => { state.render.pngTransparent = v; },
@@ -2377,6 +2385,7 @@ export function buildPanel(app, root) {
outlinePixelsSlider.set(state.render.outlinePixels ?? 2);
leafBodyLineCheck.set(state.render.leafBodyLine !== false);
transparentCheck.set(state.render.pngTransparent);
+ jpgQualitySlider.set(state.render.jpgQuality ?? 0.9);
lightPad.set({
x: state.render.lightAzimuth / 180,
y: Math.max(0, (state.render.lightElevation - 5) / 80),