Skip to content

Commit 8cbaa6b

Browse files
committed
fix: download image size is incorrect
1 parent 2c0ae66 commit 8cbaa6b

File tree

6 files changed

+91
-26
lines changed

6 files changed

+91
-26
lines changed

overrides.less

+27
Original file line numberDiff line numberDiff line change
@@ -1 +1,28 @@
11
// only for third party libraries styles
2+
3+
.simplebar-scrollbar.simplebar-visible::before {
4+
opacity: 1;
5+
}
6+
7+
.simplebar-scrollbar::before {
8+
background: var(--scrollbar-handle-bg);
9+
width: var(--scrollbar-size);
10+
}
11+
12+
.simplebar-scrollbar.simplebar-visible.simplebar-hover {
13+
&::before {
14+
background: var(--scrollbar-handle-hover-bg);
15+
}
16+
}
17+
18+
.simplebar-scrollbar.scrollbar-handle-light {
19+
&::before {
20+
background-color: var(--scrollbar-handle-light-bg);
21+
}
22+
}
23+
24+
.simplebar-scrollbar.simplebar-visible.simplebar-hover.scrollbar-handle-light {
25+
&::before {
26+
background: var(--scrollbar-handle-light-bg);
27+
}
28+
}

src/components/image-editor/index.tsx

+28-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
} from '@ant-design/icons';
88
import { useIntl } from '@umijs/max';
99
import { Button, Slider, Tooltip } from 'antd';
10+
import dayjs from 'dayjs';
1011
import _ from 'lodash';
1112
import React, { useCallback, useEffect, useRef, useState } from 'react';
1213
import IconFont from '../icon-font';
@@ -25,6 +26,8 @@ type CanvasImageEditorProps = {
2526
imageStatus: {
2627
isOriginal: boolean;
2728
isResetNeeded: boolean;
29+
width: number;
30+
height: number;
2831
};
2932
};
3033

@@ -244,7 +247,7 @@ const CanvasImageEditor: React.FC<CanvasImageEditorProps> = ({
244247
const mask = generateMask();
245248

246249
const link = document.createElement('a');
247-
link.download = 'mask.png';
250+
link.download = `mask_${dayjs().format('YYYYMMDDHHmmss')}.png`;
248251
link.href = mask || '';
249252
link.click();
250253
}, [generateMask]);
@@ -494,15 +497,37 @@ const CanvasImageEditor: React.FC<CanvasImageEditorProps> = ({
494497
redrawStrokes(newStrokes);
495498
};
496499

497-
const download = () => {
500+
const downloadOriginImage = () => {
501+
console.log('Downloading original image', imageStatus);
498502
const canvas = canvasRef.current!;
499503
const link = document.createElement('a');
500-
link.download = 'image.png';
504+
link.download = `image_${dayjs().format('YYYYMMDDHHmmss')}.png`;
501505
link.href = canvas.toDataURL('image/png');
502506
link.click();
503507
link.remove();
504508
};
505509

510+
const downloadNewImage = () => {
511+
const url = imageSrc || '';
512+
const filename = `${imageStatus.width}x${imageStatus.height}_${dayjs().format('YYYYMMDDHHmmss')}.png`;
513+
514+
const link = document.createElement('a');
515+
link.href = url;
516+
link.download = filename;
517+
document.body.appendChild(link);
518+
link.click();
519+
link.remove();
520+
};
521+
522+
const download = () => {
523+
console.log('Downloading image:', imageStatus);
524+
if (imageStatus.isOriginal) {
525+
downloadOriginImage();
526+
} else {
527+
downloadNewImage();
528+
}
529+
};
530+
506531
const drawImage = useCallback(async () => {
507532
if (!containerRef.current || !canvasRef.current) return;
508533
return new Promise<void>((resolve) => {

src/global.less

+1-15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
@import url('src/assets/styles/common.less');
22
@import url('src/assets/styles/menu.less');
33
@import url('src/assets/styles/driver.less');
4+
@import url('./overrides.less');
45

56
html {
67
--font-family: 'noto sans', sans-serif;
@@ -604,21 +605,6 @@ body {
604605
}
605606
}
606607

607-
.simplebar-scrollbar.simplebar-visible::before {
608-
opacity: 1;
609-
}
610-
611-
.simplebar-scrollbar::before {
612-
background: var(--scrollbar-handle-bg);
613-
width: var(--scrollbar-size);
614-
}
615-
616-
.simplebar-scrollbar.simplebar-visible.simplebar-hover {
617-
&::before {
618-
background: var(--scrollbar-handle-hover-bg);
619-
}
620-
}
621-
622608
.rc-virtual-list-scrollbar {
623609
width: var(--scrollbar-size) !important;
624610
}

src/pages/llmodels/components/file-parts.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ const FileParts: React.FC<{
77
fileList: any[];
88
}> = ({ fileList }) => {
99
return (
10-
<SimpleBar style={{ maxHeight: 200 }}>
10+
<SimpleBar
11+
style={{ maxHeight: 200 }}
12+
classNames={{ scrollbar: 'scrollbar-handle-light simplebar-scrollbar' }}
13+
>
1114
<div style={{ padding: 10 }}>
1215
{fileList.map((file, index) => {
1316
return (

src/pages/llmodels/components/instance-item.tsx

+15-1
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,11 @@ const InstanceItem: React.FC<InstanceItemProps> = ({
183183
</Col>
184184
<Col span={6}>
185185
<span
186-
style={{ paddingLeft: '58px' }}
186+
style={{
187+
paddingLeft: '58px',
188+
flexWrap: 'wrap',
189+
gap: '5px'
190+
}}
187191
className="flex align-center"
188192
>
189193
{item.computed_resource_claim?.total_layers !==
@@ -221,6 +225,11 @@ const InstanceItem: React.FC<InstanceItemProps> = ({
221225
<Tag
222226
color="cyan"
223227
style={{
228+
maxWidth: '100%',
229+
minWidth: 50,
230+
textOverflow: 'ellipsis',
231+
whiteSpace: 'nowrap',
232+
overflow: 'hidden',
224233
opacity: 0.75,
225234
borderRadius: 12
226235
}}
@@ -242,6 +251,11 @@ const InstanceItem: React.FC<InstanceItemProps> = ({
242251
<Tag
243252
color="processing"
244253
style={{
254+
maxWidth: '100%',
255+
minWidth: 50,
256+
textOverflow: 'ellipsis',
257+
whiteSpace: 'nowrap',
258+
overflow: 'hidden',
245259
opacity: 0.75,
246260
borderRadius: 12
247261
}}

src/pages/playground/components/image-edit.tsx

+16-6
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,13 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
129129
const [imageStatus, setImageStatus] = useState<{
130130
isOriginal: boolean;
131131
isResetNeeded: boolean;
132+
width: number;
133+
height: number;
132134
}>({
133135
isOriginal: false,
134-
isResetNeeded: false
136+
isResetNeeded: false,
137+
width: 512,
138+
height: 512
135139
});
136140
const doneImage = useRef<boolean>(false);
137141
const cacheFormData = useRef<any>({});
@@ -661,16 +665,20 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
661665
setActiveImgUid(_.get(base64List, '[0].uid', ''));
662666
setImageStatus({
663667
isOriginal: false,
664-
isResetNeeded: true
668+
isResetNeeded: true,
669+
width: _.get(currentImg, 'width', 512),
670+
height: _.get(currentImg, 'height', 512)
665671
});
666672
setImageList([]);
667673
}, []);
668674

669675
const handleOnSave = useCallback(
670676
(data: { img: string; mask: string | null }) => {
671-
setImageStatus({
672-
isOriginal: true,
673-
isResetNeeded: false
677+
setImageStatus((pre) => {
678+
return {
679+
...pre,
680+
isResetNeeded: false
681+
};
674682
});
675683
setMask(data.mask || null);
676684
setImage(data.img);
@@ -731,7 +739,9 @@ const GroundImages: React.FC<MessageProps> = forwardRef((props, ref) => {
731739
setImage(item.dataUrl);
732740
setImageStatus({
733741
isOriginal: isOrigin,
734-
isResetNeeded: false
742+
isResetNeeded: false,
743+
width: item.width,
744+
height: item.height
735745
});
736746
}, []);
737747

0 commit comments

Comments
 (0)