Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
bae90f6f
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
bae90f6f
编写于
7月 09, 2022
作者:
O
openharmony_ci
提交者:
Gitee
7月 09, 2022
浏览文件
操作
浏览文件
下载
差异文件
!6602 【轻量级 PR】:update zh-cn/application-dev/media/image.md.
Merge pull request !6602 from robert-han/N/A
上级
e3ca00a5
afee8972
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
55 addition
and
55 deletion
+55
-55
zh-cn/application-dev/media/image.md
zh-cn/application-dev/media/image.md
+55
-55
未找到文件。
zh-cn/application-dev/media/image.md
浏览文件 @
bae90f6f
...
...
@@ -15,10 +15,10 @@
包含流程:创建实例、读取图片信息、读写pixelmap、更新数据、打包像素、释放资源等流程。
```
js
const
color
=
new
ArrayBuffer
(
96
);
//
用于存放图像像素数据
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
//图像像素数据
const
color
=
new
ArrayBuffer
(
96
);
//
用于存放图像像素数据
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
//
图像像素数据
//创建pixelmap对象
//
创建pixelmap对象
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
...
...
@@ -26,7 +26,7 @@ let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: {
console
.
info
(
'
TC_001-1 success
'
);
done
();
})
//用于读像素
//
用于读像素
pixelmap
.
readPixels
(
area
,(
data
)
=>
{
if
(
data
!==
null
)
{
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
...
...
@@ -44,7 +44,7 @@ pixelmap.readPixels(area,(data) => {
}
}
//用于存像素
//
用于存像素
const
readBuffer
=
new
ArrayBuffer
(
96
);
pixelmap
.
readPixelsToBuffer
(
readBuffer
,()
=>
{
var
bufferArr
=
new
Uint8Array
(
readBuffer
);
...
...
@@ -61,7 +61,7 @@ for (var i = 0; i < bufferArr.length; i++) {
}
}
//用于写像素
//
用于写像素
pixelmap
.
writePixels
(
area
,()
=>
{
const
readArea
=
{
pixels
:
new
ArrayBuffer
(
20
),
offset
:
0
,
stride
:
8
,
region
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
}}
pixelmap
.
readPixels
(
readArea
,()
=>
{
...
...
@@ -79,7 +79,7 @@ pixelmap.writePixels(area,() => {
}
}
//用于写像素到缓冲区
//
用于写像素到缓冲区
pixelmap
.
writeBufferToPixels
(
writeColor
).
then
(()
=>
{
const
readBuffer
=
new
ArrayBuffer
(
96
);
pixelmap
.
readPixelsToBuffer
(
readBuffer
).
then
(()
=>
{
...
...
@@ -97,7 +97,7 @@ pixelmap.writeBufferToPixels(writeColor).then(() => {
}
}
//用于获取图片信息
//
用于获取图片信息
pixelmap
.
getImageInfo
(
imageInfo
=>
{
if
(
imageInfo
!==
null
)
{
console
.
info
(
'
TC_024-1 imageInfo is ready
'
);
...
...
@@ -108,29 +108,29 @@ pixelmap.getImageInfo( imageInfo => {
}
})
//用于释放pixelmap
//
用于释放pixelmap
pixelmap
.
release
(()
=>
{
expect
(
true
).
assertTrue
();
console
.
log
(
'
TC_027-1 suc
'
);
done
();
})
//用于创建imagesource(uri)
const
imageSourceApi
=
image
.
createImageSource
(
path
);
//
'/data/local/tmp/test.jpg'
//
用于创建imagesource(uri)
const
imageSourceApi
=
image
.
createImageSource
(
path
);
//
'/data/local/tmp/test.jpg'
//用于创建imagesource(fd)
//
用于创建imagesource(fd)
const
imageSourceApi
=
image
.
createImageSource
(
29
);
//用于创建imagesource(data)
//
用于创建imagesource(data)
const
data
=
new
ArrayBuffer
(
96
);
const
imageSourceApi
=
image
.
createImageSource
(
data
);
//用于释放imagesource
//
用于释放imagesource
imageSourceApi
.
release
(()
=>
{
console
.
info
(
'
TC_044-1 Success
'
);
})
//用于编码
//
用于编码
const
imagePackerApi
=
image
.
createImagePacker
();
imagePackerApi
.
packing
(
imageSourceApi
,
packOpts
,
data
=>
{
console
.
info
(
'
TC_062-1 finished
'
);
...
...
@@ -138,30 +138,30 @@ imagePackerApi.packing(imageSourceApi, packOpts, data => {
done
();
})
//用于释放imagepacker
//
用于释放imagepacker
imagePackerApi
.
release
();
```
### 解码场景
```
js
/
data
/
local
/
tmp
/
test
.
jpg
//设置创建imagesource的路径
/
data
/
local
/
tmp
/
test
.
jpg
//
设置创建imagesource的路径
//用路径创建imagesource
const
imageSourceApi
=
image
.
createImageSource
(
path
);
//
'/data/local/tmp/test.jpg'
//
用路径创建imagesource
const
imageSourceApi
=
image
.
createImageSource
(
path
);
//
'/data/local/tmp/test.jpg'
//设置参数
//
设置参数
let
decodingOptions
=
{
sampleSize
:
1
,
//
缩略图采样大小
editable
:
true
,
//是否可编辑
desiredSize
:{
width
:
1
,
height
:
2
},
//
期望输出大小
rotateDegrees
:
10
,
//
旋转角度
desiredPixelFormat
:
2
,
//
解码的像素格式
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
},
//
解码的区域
index
:
0
//
图片序号
sampleSize
:
1
,
//
缩略图采样大小
editable
:
true
,
//
是否可编辑
desiredSize
:{
width
:
1
,
height
:
2
},
//
期望输出大小
rotateDegrees
:
10
,
//
旋转角度
desiredPixelFormat
:
2
,
//
解码的像素格式
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
},
//
解码的区域
index
:
0
//
图片序号
};
//用于回调方式创建pixelmap
//
用于回调方式创建pixelmap
imageSourceApi
.
createPixelMap
(
decodingOptions
,
pixelmap
=>
{
console
.
info
(
'
TC_050 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
...
...
@@ -169,49 +169,49 @@ imageSourceApi.createPixelMap(decodingOptions, pixelmap => {
})
}
//用于promise创建pixelmap
//
用于promise创建pixelmap
imageSourceApi
.
createPixelMap
().
then
(
pixelmap
=>
{
console
.
info
(
'
TC_050-11 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
done
();
})
//函数调用发生异常时,捕捉错误信息
//
函数调用发生异常时,捕捉错误信息
catch
(
error
=>
{
console
.
log
(
'
TC_050-11 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
//用于获取像素每行字节数
//
用于获取像素每行字节数
pixelmap
.
getBytesNumberPerRow
(
num
=>
{
console
.
info
(
'
TC_025-1 num is
'
+
num
);
expect
(
num
==
expectNum
).
assertTrue
();
done
();
})
//用于获取像素总字节数
//
用于获取像素总字节数
pixelmap
.
getPixelBytesNumber
(
num
=>
{
console
.
info
(
'
TC_026-1 num is
'
+
num
);
expect
(
num
==
expectNum
).
assertTrue
();
done
();
})
//用于获取pixelmap信息
//
用于获取pixelmap信息
pixelmap
.
getImageInfo
(
imageInfo
=>
{})
//用于打印获取失败信息
//
用于打印获取失败信息
console
.
info
(
'
TC_024-1 imageInfo is empty
'
);
expect
(
false
).
assertTrue
()
//用于释放pixelmap
//
用于释放pixelmap
pixelmap
.
release
(()
=>
{
expect
(
true
).
assertTrue
();
console
.
log
(
'
TC_027-1 suc
'
);
done
();
})
//用于捕捉释放失败信息
//
用于捕捉释放失败信息
catch
(
error
=>
{
console
.
log
(
'
TC_027-1 error:
'
+
error
);
expect
().
assertFail
();
...
...
@@ -222,33 +222,33 @@ catch(error => {
### 编码场景
```
js
/
data
/
local
/
tmp
/
test
.
png
//设置创建imagesource的路径
/
data
/
local
/
tmp
/
test
.
png
//
设置创建imagesource的路径
//用于设置imagesource
const
imageSourceApi
=
image
.
createImageSource
(
path
);
//
'/data/local/tmp/test.png'
//
用于设置imagesource
const
imageSourceApi
=
image
.
createImageSource
(
path
);
//
'/data/local/tmp/test.png'
//如果创建imagesource失败,打印错误信息
//
如果创建imagesource失败,打印错误信息
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_062 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
//如果创建imagesource成功,则创建imagepacker
//
如果创建imagesource成功,则创建imagepacker
const
imagePackerApi
=
image
.
createImagePacker
();
//如果创建失败,打印错误信息
//
如果创建失败,打印错误信息
if
(
imagePackerApi
==
null
)
{
console
.
info
(
'
TC_062 create image packer failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
//如果创建imagepacker成功,则设置编码参数
let
packOpts
=
{
format
:[
"
image/jpeg
"
],
//支持编码的格式为jpg
quality
:
98
}
//
图片质量0-100
//
如果创建imagepacker成功,则设置编码参数
let
packOpts
=
{
format
:[
"
image/jpeg
"
],
//
支持编码的格式为jpg
quality
:
98
}
//
图片质量0-100
//用于编码
//
用于编码
imagePackerApi
.
packing
(
imageSourceApi
,
packOpts
)
.
then
(
data
=>
{
console
.
info
(
'
TC_062 finished
'
);
...
...
@@ -256,17 +256,17 @@ imagePackerApi.packing(imageSourceApi, packOpts)
done
();
})
//编码完成,释放imagepacker
//
编码完成,释放imagepacker
imagePackerApi
.
release
();
//用于获取imagesource信息
//
用于获取imagesource信息
imageSourceApi
.
getImageInfo
(
imageInfo
=>
{
console
.
info
(
'
TC_045 imageInfo
'
);
expect
(
imageInfo
!==
null
).
assertTrue
();
done
();
})
//用于更新增量数据
//
用于更新增量数据
imageSourceIncrementalSApi
.
updateData
(
array
,
false
,
0
,
10
,(
error
,
data
)
=>
{})
```
...
...
@@ -278,22 +278,22 @@ imageSourceIncrementalSApi.updateData(array, false, 0, 10,(error,data )=> {})
```
js
public
async
init
(
surfaceId
:
any
)
{
//服务端代码,创建ImageReceiver
//
服务端代码,创建ImageReceiver
var
receiver
=
image
.
createImageReceiver
(
8
*
1024
,
8
,
image
.
ImageFormat
.
JPEG
,
1
);
//获取Surface ID
//
获取Surface ID
var
surfaceId
=
await
receiver
.
getReceivingSurfaceId
();
//注册Surface的监听,在suface的buffer准备好后触发
//
注册Surface的监听,在suface的buffer准备好后触发
receiver
.
on
(
'
imageArrival
'
,
()
=>
{
//去获取Surface中最新的buffer
//
去获取Surface中最新的buffer
receiver
.
readNextImage
((
err
,
img
)
=>
{
img
.
getComponent
(
4
,
(
err
,
component
)
=>
{
//消费component.byteBuffer,例如:将buffer内容保存成图片。
//
消费component.byteBuffer,例如:将buffer内容保存成图片。
})
})
})
//调用Camera方法将surfaceId传递给Camera。camera会通过surfaceId获取surface,并生产出surface buffer。
//
调用Camera方法将surfaceId传递给Camera。camera会通过surfaceId获取surface,并生产出surface buffer。
}
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录