Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
十二月的谎言
VueJS
提交
4ec263ba
V
VueJS
项目概览
十二月的谎言
/
VueJS
与 Fork 源项目一致
Fork自
inscode / VueJS
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
VueJS
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
4ec263ba
编写于
10月 23, 2023
作者:
Q
qq_59556663
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Mon Oct 23 14:48:00 CST 2023 inscode
上级
f000adc9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
47 addition
and
0 deletion
+47
-0
src/uitls/preview.ts
src/uitls/preview.ts
+47
-0
未找到文件。
src/uitls/preview.ts
浏览文件 @
4ec263ba
...
...
@@ -35,4 +35,51 @@ function intercpt(calssname: HTMLElement) {
return
canvas
.
toDataURL
(
'
image/png
'
,
1.0
)
}
/**
* 截取本地视频某一帧
* @ramerate
*/
function
ramerate
(
url
:
string
,
width
:
string
,
height
:
string
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
const
video
=
document
.
createElement
(
'
video
'
)
video
.
currentTime
=
8
// 指定帧数
video
.
setAttribute
(
'
mut
'
,
'
true
'
)
video
.
setAttribute
(
'
crossOrigin
'
,
'
anonymous
'
)
// 处理跨域
video
.
setAttribute
(
'
crossOrigin
'
,
'
anonymous
'
)
// 处理跨域
video
.
setAttribute
(
'
src
'
,
url
)
video
.
setAttribute
(
'
x5-video-player-type
'
,
'
h5-page
'
)
video
.
setAttribute
(
'
preload
'
,
'
metadata
'
)
video
.
setAttribute
(
'
width
'
,
width
)
video
.
setAttribute
(
'
height
'
,
height
)
video
.
addEventListener
(
'
loadeddata
'
,
()
=>
{
const
canvas
=
document
.
createElement
(
'
canvas
'
)
as
any
const
width
=
video
.
width
// canvas的尺寸和图片一样
const
height
=
video
.
height
canvas
.
width
=
width
canvas
.
height
=
height
canvas
.
getContext
(
'
2d
'
).
drawImage
(
video
,
0
,
0
,
width
,
height
)
// 绘制canvas
var
dataURL
=
canvas
.
toDataURL
(
'
image/jpeg
'
)
// 转换为base64
console
.
log
(
dataURL
);
resolve
(
dataURL
);
})
})
}
/**
* 截取本地图片第一帧转化为文件类型
* @convert
*/
function
convert
(
url
:
any
,
name
:
string
)
{
// console.log(url);
var
arr
=
url
.
split
(
"
,
"
),
mime
=
arr
[
0
].
match
(
/:
(
.*
?)
;/
)[
1
],
bstr
=
atob
(
arr
[
1
]),
n
=
bstr
.
length
,
u8arr
=
new
Uint8Array
(
n
);
while
(
n
--
)
{
u8arr
[
n
]
=
bstr
.
charCodeAt
(
n
);
}
console
.
log
(
new
File
([
u8arr
],
name
||
'
png
'
,
{
type
:
mime
}));
return
new
File
([
u8arr
],
name
||
'
png
'
,
{
type
:
mime
})
}
export
{
preview
,
intercpt
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录