From bc8ae9dc3287a25c8ffc3475de0225e1e68fd6b1 Mon Sep 17 00:00:00 2001 From: LH_R Date: Sun, 17 Nov 2024 00:46:37 +0800 Subject: [PATCH 1/4] feat: add download image size config --- .../boardOperation/downloadImage/index.tsx | 46 +++++++++++++++++-- .../icons/boardOperation/image-size.svg | 12 +++++ src/i18n/en.json | 5 ++ src/i18n/zh.json | 5 ++ 4 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 src/components/icons/boardOperation/image-size.svg diff --git a/src/components/boardOperation/downloadImage/index.tsx b/src/components/boardOperation/downloadImage/index.tsx index 20cc136..9aa7001 100644 --- a/src/components/boardOperation/downloadImage/index.tsx +++ b/src/components/boardOperation/downloadImage/index.tsx @@ -8,6 +8,7 @@ import { canvasPreview } from './canvasPreview' import Mask from '@/components/mask' import ImageRotate from '@/components/icons/boardOperation/image-rotate.svg?react' import ImageScale from '@/components/icons/boardOperation/image-scale.svg?react' +import ImageSize from '@/components/icons/boardOperation/image-size.svg?react' import 'react-image-crop/dist/ReactCrop.css' @@ -21,6 +22,7 @@ const DownloadImage: FC = ({ url, showModal, setShowModal }) => { const { t } = useTranslation() const [saveImageRotate, updateSaveImageRotate] = useState(0) const [saveImageScale, updateSaveImageScale] = useState(1) + const [saveImageSize, updateSaveImageSize] = useState(1) const [completedCrop, setCompletedCrop] = useState() const [crop, setCrop] = useState() @@ -71,8 +73,8 @@ const DownloadImage: FC = ({ url, showModal, setShowModal }) => { const scaleY = image.naturalHeight / image.height const offscreen = new OffscreenCanvas( - completedCrop.width * scaleX, - completedCrop.height * scaleY + completedCrop.width * scaleX * saveImageSize, + completedCrop.height * scaleY * saveImageSize ) const ctx = offscreen.getContext('2d') if (!ctx) { @@ -140,7 +142,12 @@ const DownloadImage: FC = ({ url, showModal, setShowModal }) => {
- +
+ +
= ({ url, showModal, setShowModal }) => {
- +
+ +
= ({ url, showModal, setShowModal }) => { }} />
+ +
+
+ +
+
+ {[1, 2, 3].map((value) => ( + { + updateSaveImageSize(value) + }} + > + {`${value}x`} + + ))} +
+
-
+