export jpeg
This commit is contained in:
parent
92343dd645
commit
7f015692c5
@ -19,7 +19,7 @@ import {
|
|||||||
Image,
|
Image,
|
||||||
Modal,
|
Modal,
|
||||||
} from "@douyinfe/semi-ui";
|
} from "@douyinfe/semi-ui";
|
||||||
import { toPng } from "html-to-image";
|
import { toPng, toJpeg } from "html-to-image";
|
||||||
import { saveAs } from "file-saver";
|
import { saveAs } from "file-saver";
|
||||||
|
|
||||||
export default function ControlPanel() {
|
export default function ControlPanel() {
|
||||||
@ -30,6 +30,7 @@ export default function ControlPanel() {
|
|||||||
const [filename, setFilename] = useState(
|
const [filename, setFilename] = useState(
|
||||||
`diagram_${new Date().toISOString()}`
|
`diagram_${new Date().toISOString()}`
|
||||||
);
|
);
|
||||||
|
const [extension, setExtension] = useState("");
|
||||||
|
|
||||||
const menu = {
|
const menu = {
|
||||||
File: {
|
File: {
|
||||||
@ -69,12 +70,23 @@ export default function ControlPanel() {
|
|||||||
setDataUrl(dataUrl);
|
setDataUrl(dataUrl);
|
||||||
});
|
});
|
||||||
setVisible(true);
|
setVisible(true);
|
||||||
|
setExtension("png");
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
".jpeg": () => {
|
||||||
|
toJpeg(document.getElementById("canvas"), { quality: 0.95 }).then(
|
||||||
|
function (dataUrl) {
|
||||||
|
setDataUrl(dataUrl);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
setVisible(true);
|
||||||
|
setExtension("jpeg");
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{ ".jpg": () => {} },
|
|
||||||
{ ".xml": () => {} },
|
{ ".xml": () => {} },
|
||||||
{ ".svg": () => {} },
|
{ ".svg": () => {} },
|
||||||
{ ".xml": () => {} },
|
{ ".pdf": () => {} },
|
||||||
],
|
],
|
||||||
function: () => {},
|
function: () => {},
|
||||||
},
|
},
|
||||||
@ -474,8 +486,11 @@ export default function ControlPanel() {
|
|||||||
<Modal
|
<Modal
|
||||||
title="Export diagram"
|
title="Export diagram"
|
||||||
visible={visible}
|
visible={visible}
|
||||||
onOk={() => saveAs(dataUrl, `${filename}.png`)}
|
onOk={() => saveAs(dataUrl, `${filename}.${extension}`)}
|
||||||
afterClose={() => setFilename(`diagram_${new Date().toISOString()}`)}
|
afterClose={() => {
|
||||||
|
setFilename(`diagram_${new Date().toISOString()}`);
|
||||||
|
setDataUrl("");
|
||||||
|
}}
|
||||||
onCancel={() => setVisible(false)}
|
onCancel={() => setVisible(false)}
|
||||||
centered
|
centered
|
||||||
closeOnEsc={true}
|
closeOnEsc={true}
|
||||||
@ -488,14 +503,17 @@ export default function ControlPanel() {
|
|||||||
labelPosition="left"
|
labelPosition="left"
|
||||||
labelAlign="right"
|
labelAlign="right"
|
||||||
onChange={(value) => {
|
onChange={(value) => {
|
||||||
console.log(value.values);
|
setFilename((prev) =>
|
||||||
setFilename(value.values["filename"]);
|
value.values["filename"] !== undefined
|
||||||
|
? value.values["filename"]
|
||||||
|
: prev
|
||||||
|
);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Form.Input
|
<Form.Input
|
||||||
field="filename"
|
field="filename"
|
||||||
label="Filename"
|
label="Filename"
|
||||||
suffix={<div className="p-2">.png</div>}
|
suffix={<div className="p-2">{`.${extension}`}</div>}
|
||||||
initValue={filename}
|
initValue={filename}
|
||||||
/>
|
/>
|
||||||
</Form>
|
</Form>
|
||||||
|
Loading…
Reference in New Issue
Block a user