fix: download image size on edit page

This commit is contained in:
jialin
2025-02-06 15:04:15 +08:00
parent 2d03f17bde
commit 1a1807df96
2 changed files with 21 additions and 11 deletions
+21 -10
View File
@@ -498,7 +498,6 @@ const CanvasImageEditor: React.FC<CanvasImageEditorProps> = ({
}; };
const downloadOriginImage = () => { const downloadOriginImage = () => {
console.log('Downloading original image', imageStatus);
const canvas = canvasRef.current!; const canvas = canvasRef.current!;
const link = document.createElement('a'); const link = document.createElement('a');
link.download = `image_${dayjs().format('YYYYMMDDHHmmss')}.png`; link.download = `image_${dayjs().format('YYYYMMDDHHmmss')}.png`;
@@ -508,19 +507,31 @@ const CanvasImageEditor: React.FC<CanvasImageEditorProps> = ({
}; };
const downloadNewImage = () => { const downloadNewImage = () => {
const url = imageSrc || ''; if (!imageSrc) return;
const filename = `${imageStatus.width}x${imageStatus.height}_${dayjs().format('YYYYMMDDHHmmss')}.png`;
const link = document.createElement('a'); const img = new Image();
link.href = url; img.src = imageSrc;
link.download = filename; img.onload = () => {
document.body.appendChild(link); const canvas = document.createElement('canvas');
link.click(); canvas.width = imageStatus.width;
link.remove(); canvas.height = imageStatus.height;
const ctx = canvas.getContext('2d')!;
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
const url = canvas.toDataURL('image/png');
const filename = `${canvas.width}x${canvas.height}_${dayjs().format('YYYYMMDDHHmmss')}.png`;
const link = document.createElement('a');
link.href = url;
link.download = filename;
document.body.appendChild(link);
link.click();
link.remove();
};
}; };
const download = () => { const download = () => {
console.log('Downloading image:', imageStatus);
if (imageStatus.isOriginal) { if (imageStatus.isOriginal) {
downloadOriginImage(); downloadOriginImage();
} else { } else {
@@ -657,7 +657,6 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
); );
const handleUpdateImageList = useCallback((base64List: any) => { const handleUpdateImageList = useCallback((base64List: any) => {
console.log('updateimagelist=========', base64List);
const currentImg = _.get(base64List, '[0]', {}); const currentImg = _.get(base64List, '[0]', {});
const img = _.get(currentImg, 'dataUrl', ''); const img = _.get(currentImg, 'dataUrl', '');
setUploadList(base64List); setUploadList(base64List);