Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Five-菜鸟级
NodeJS_668036
提交
d75f300f
N
NodeJS_668036
项目概览
Five-菜鸟级
/
NodeJS_668036
与 Fork 源项目一致
Fork自
inscode / NodeJS
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
NodeJS_668036
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d75f300f
编写于
2月 06, 2025
作者:
Q
qq_41923622
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Thu Feb 6 18:16:00 CST 2025 inscode
上级
cfe67751
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
33 addition
and
32 deletion
+33
-32
src/tiny-image-editor/src/components/Upload.tsx
src/tiny-image-editor/src/components/Upload.tsx
+33
-32
未找到文件。
src/tiny-image-editor/src/components/Upload.tsx
浏览文件 @
d75f300f
...
@@ -7,24 +7,9 @@ import {fabric} from 'fabric';
...
@@ -7,24 +7,9 @@ import {fabric} from 'fabric';
import
ArrowClass
from
'
../helpers/Arrow
'
;
import
ArrowClass
from
'
../helpers/Arrow
'
;
function
annotationsInit
(
imgData
,
canvas
,
historyRef
,){
function
annotationsInit
(
imgData
,
canvas
,
historyRef
,
positionInfo
){
// 获取当前图片和画布尺寸
const
currentImageWidth
=
canvas
.
backgroundImage
.
width
;
const
currentImageHeight
=
canvas
.
backgroundImage
.
height
;
const
currentCanvasWidth
=
canvas
.
getWidth
();
const
currentCanvasHeight
=
canvas
.
getHeight
();
let
imageWidth
=
imgData
.
imageWidth
||
imgData
.
imgWidth
;
let
imageHeight
=
imgData
.
imageHeight
||
imgData
.
imgHeight
;
// 计算缩放比例
const
originalScaleX
=
imgData
.
originalCanvasWidth
/
imageWidth
;
const
originalScaleY
=
imgData
.
originalCanvasHeight
/
imageHeight
;
const
currentScaleX
=
currentCanvasWidth
/
currentImageWidth
;
const
currentScaleY
=
currentCanvasHeight
/
currentImageHeight
;
const
scaleX
=
currentScaleX
/
originalScaleX
;
const
scaleY
=
currentScaleY
/
originalScaleY
;
const
{
scaleX
,
scaleY
}
=
positionInfo
console
.
log
(
"
scaleX,scaleY
"
,
scaleX
,
scaleY
,
currentCanvasWidth
,
currentCanvasHeight
,
currentImageWidth
,
currentImageHeight
,
imageWidth
,
imageHeight
,
imgData
)
console
.
log
(
"
scaleX,scaleY
"
,
scaleX
,
scaleY
,
currentCanvasWidth
,
currentCanvasHeight
,
currentImageWidth
,
currentImageHeight
,
imageWidth
,
imageHeight
,
imgData
)
// 遍历标注信息,重新创建元素并添加到画布上
// 遍历标注信息,重新创建元素并添加到画布上
imgData
.
annotations
.
forEach
((
annotation
)
=>
{
imgData
.
annotations
.
forEach
((
annotation
)
=>
{
...
@@ -136,25 +121,41 @@ export const useUpload = () => {
...
@@ -136,25 +121,41 @@ export const useUpload = () => {
const
canvas
=
canvasInstanceRef
.
current
;
const
canvas
=
canvasInstanceRef
.
current
;
if
(
canvasEl
?.
current
&&
typeof
e
===
'
string
'
){
if
(
canvasEl
?.
current
&&
typeof
e
===
'
string
'
){
let
imgObj
=
new
Image
();
let
imgObj
=
new
Image
();
if
(
imgData
){
// 获取当前图片和画布尺寸
const
currentImageWidth
=
canvas
.
backgroundImage
.
width
;
const
currentImageHeight
=
canvas
.
backgroundImage
.
height
;
const
currentCanvasWidth
=
canvas
.
getWidth
();
const
currentCanvasHeight
=
canvas
.
getHeight
();
let
imageWidth
=
imgData
.
imageWidth
||
imgData
.
imgWidth
;
let
imageHeight
=
imgData
.
imageHeight
||
imgData
.
imgHeight
;
// 计算缩放比例
/** const newScaleFactor = Math.min(currentCanvasWidth / img.width, currentCanvasHeight / img.height);
const
originalScaleX
=
imgData
.
originalCanvasWidth
/
imageWidth
;
img.set({
const
originalScaleY
=
imgData
.
originalCanvasHeight
/
imageHeight
;
left: 0,
const
currentScaleX
=
currentCanvasWidth
/
currentImageWidth
;
top: 0,
const
currentScaleY
=
currentCanvasHeight
/
currentImageHeight
;
scaleX: newScaleFactor,
scaleY: newScaleFactor
});**/
imgObj
.
src
=
e
as
string
;
initBackGroundImage
(
e
as
string
,
true
,
()
=>
{
historyRef
.
current
.
updateCanvasState
(
ACTION
.
add
);
setTimeout
(()
=>
{
if
(
imgData
){
annotationsInit
(
imgData
,
canvas
,
historyRef
);
const
scaleX
=
currentScaleX
/
originalScaleX
;
const
scaleY
=
currentScaleY
/
originalScaleY
;
const
newScaleFactor
=
Math
.
min
(
currentCanvasWidth
/
imageWidth
,
currentCanvasHeight
/
imageHeight
);
annotationsInit
(
imgData
,
canvas
,
historyRef
,{
scaleX
,
scaleY
,
});
}
}
})
})
},
5000
);
}
else
{
}
imgObj
.
src
=
e
as
string
;
initBackGroundImage
(
e
as
string
,
true
,
()
=>
{
historyRef
.
current
.
updateCanvasState
(
ACTION
.
add
);
return
;
return
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录