Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
7e6af2a2
D
Docs
项目概览
OpenHarmony
/
Docs
10 个月 前同步成功
通知
158
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
7e6af2a2
编写于
8月 29, 2023
作者:
O
openharmony_ci
提交者:
Gitee
8月 29, 2023
浏览文件
操作
浏览文件
下载
差异文件
!23314 示例代码整改
Merge pull request !23314 from 朱静茹/master
上级
b786ece8
8987a470
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
35 addition
and
31 deletion
+35
-31
zh-cn/application-dev/media/image-decoding.md
zh-cn/application-dev/media/image-decoding.md
+24
-20
zh-cn/application-dev/media/image-encoding.md
zh-cn/application-dev/media/image-encoding.md
+4
-4
zh-cn/application-dev/media/image-pixelmap-operation.md
zh-cn/application-dev/media/image-pixelmap-operation.md
+3
-3
zh-cn/application-dev/media/image-tool.md
zh-cn/application-dev/media/image-tool.md
+4
-4
未找到文件。
zh-cn/application-dev/media/image-decoding.md
浏览文件 @
7e6af2a2
...
...
@@ -17,8 +17,8 @@
```
ts
// Stage模型参考如下代码
const
context
=
getContext
(
this
);
const
filePath
=
context
.
cacheDir
+
'
/test.jpg
'
;
const
context
:
Context
=
getContext
(
this
);
const
filePath
:
string
=
context
.
cacheDir
+
'
/test.jpg
'
;
```
```ts
...
...
@@ -39,10 +39,10 @@
```
ts
// Stage模型参考如下代码
const
context
=
getContext
(
this
);
const
filePath
=
context
.
cacheDir
+
'
/test.jpg
'
;
const
file
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
);
const
fd
=
file
?.
fd
;
const
context
:
Context
=
getContext
(
this
);
const
filePath
:
string
=
context
.
cacheDir
+
'
/test.jpg
'
;
const
file
:
File
=
fs
.
openSync
(
filePath
,
fs
.
OpenMode
.
READ_WRITE
);
const
fd
:
number
=
file
?.
fd
;
```
```ts
...
...
@@ -51,16 +51,16 @@
const context = featureAbility.getContext();
const filePath = context.getCacheDir() + "/test.jpg";
const file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
const fd = file?.fd;
const file
: File
= fs.openSync(filePath, fs.OpenMode.READ_WRITE);
const fd
: number
= file?.fd;
```
-
方法三:通过资源管理器获取资源文件的ArrayBuffer。具体请参考
[
ResourceManager API参考文档
](
../reference/apis/js-apis-resource-manager.md#getrawfilecontent9-1
)
。
```
ts
// Stage模型
const
context
=
getContext
(
this
);
const
context
:
Context
=
getContext
(
this
);
// 获取resourceManager资源管理器
const
resourceMgr
=
context
.
resourceManager
;
const
resourceMgr
:
ResourceManager
=
context
.
resourceManager
;
```
```ts
...
...
@@ -73,7 +73,7 @@
不同模型获取资源管理器的方式不同,获取资源管理器后,再调用resourceMgr.getRawFileContent()获取资源文件的ArrayBuffer。
```ts
const fileData = await resourceMgr.getRawFileContent('test.jpg');
const fileData
: Content
= await resourceMgr.getRawFileContent('test.jpg');
// 获取图片的ArrayBuffer
const buffer = fileData.buffer;
```
...
...
@@ -83,29 +83,33 @@
```
ts
// path为已获得的沙箱路径
const
imageSource
=
image
.
createImageSource
(
filePath
);
const
imageSource
:
ImageSource
=
image
.
createImageSource
(
filePath
);
```
-
方法二:通过文件描述符fd创建ImageSource。文件描述符可以通过步骤2的方法二获取。
```
ts
// fd为已获得的文件描述符
const
imageSource
=
image
.
createImageSource
(
fd
);
const
imageSource
:
ImageSource
=
image
.
createImageSource
(
fd
);
```
-
方法三:通过缓冲区数组创建ImageSource。缓冲区数组可以通过步骤2的方法三获取。
```
ts
const
imageSource
=
image
.
createImageSource
(
buffer
);
const
imageSource
:
ImageSource
=
image
.
createImageSource
(
buffer
);
```
4.
设置解码参数DecodingOptions,解码获取PixelMap图片对象。
```
ts
class
decodingOption
{
flag
:
boolean
=
true
n
:
number
=
0
}
let
decodingOptions
=
{
editable
:
true
,
desiredPixelFormat
:
3
,
}
// 创建pixelMap并进行简单的旋转和缩放
const
pixelMap
=
await
imageSource
.
createPixelMap
(
decodingOptions
);
const
pixelMap
:
PixelMap
=
await
imageSource
.
createPixelMap
(
decodingOptions
);
```
解码完成,获取到PixelMap对象后,可以进行后续
[
图片处理
](
image-transformation.md
)
。
...
...
@@ -120,15 +124,15 @@
1.
获取resourceManager资源管理。
```
ts
const
context
=
getContext
(
this
);
const
context
:
Context
=
getContext
(
this
);
// 获取resourceManager资源管理
const
resourceMgr
=
context
.
resourceManager
;
const
resourceMgr
:
ResourceManager
=
context
.
resourceManager
;
```
2.
获取rawfile文件夹下test.jpg的ArrayBuffer。
```
ts
const
fileData
=
await
resourceMgr
.
getRawFileContent
(
'
test.jpg
'
);
const
fileData
:
Content
=
await
resourceMgr
.
getRawFileContent
(
'
test.jpg
'
);
// 获取图片的ArrayBuffer
const
buffer
=
fileData
.
buffer
;
```
...
...
@@ -136,13 +140,13 @@
3.
创建imageSource。
```
ts
const
imageSource
=
image
.
createImageSource
(
buffer
);
const
imageSource
:
ImageSource
=
image
.
createImageSource
(
buffer
);
```
4.
创建PixelMap。
```
ts
const
pixelMap
=
await
imageSource
.
createPixelMap
();
const
pixelMap
:
PixelMap
=
await
imageSource
.
createPixelMap
();
```
5.
释放pixelMap。
...
...
zh-cn/application-dev/media/image-encoding.md
浏览文件 @
7e6af2a2
...
...
@@ -20,7 +20,7 @@
format为图像的编码格式;quality为图像质量,范围从0-100,100为最佳质量。
```
ts
let
packOpts
=
{
format
:
"
image/jpeg
"
,
quality
:
98
};
let
packOpts
:
Context
=
{
format
:
"
image/jpeg
"
,
quality
:
98
};
```
3.
[
创建PixelMap对象或创建ImageSource
](
image-decoding.md
)
对象。
...
...
@@ -30,9 +30,9 @@
方法一:通过PixelMap进行编码。
```
ts
imagePackerApi
.
packing
(
pixelMap
,
packOpts
).
then
(
data
=>
{
imagePackerApi
.
packing
(
pixelMap
:
PixelMap
,
packOpts
).
then
(
data
=>
{
// data 为打包获取到的文件流,写入文件保存即可得到一张图片
}).
catch
(
error
=>
{
}).
catch
(
error
:
void
=>
{
console
.
error
(
'
Failed to pack the image. And the error is:
'
+
error
);
})
```
...
...
@@ -42,7 +42,7 @@
```
ts
imagePackerApi
.
packing
(
imageSource
,
packOpts
).
then
(
data
=>
{
// data 为打包获取到的文件流,写入文件保存即可得到一张图片
}).
catch
(
error
=>
{
}).
catch
(
error
:
void
=>
{
console
.
error
(
'
Failed to pack the image. And the error is:
'
+
error
);
})
```
zh-cn/application-dev/media/image-pixelmap-operation.md
浏览文件 @
7e6af2a2
...
...
@@ -17,11 +17,11 @@
```
ts
// 获取图像像素的总字节数
let
pixelBytesNumber
=
pixelMap
.
getPixelBytesNumber
();
let
pixelBytesNumber
:
number
=
pixelMap
.
getPixelBytesNumber
();
// 获取图像像素每行字节数
let
rowCount
=
pixelMap
.
getBytesNumberPerRow
();
let
rowCount
:
number
=
pixelMap
.
getBytesNumberPerRow
();
// 获取当前图像像素密度。像素密度是指每英寸图片所拥有的像素数量。像素密度越大,图片越精细。
let
getDensity
=
pixelMap
.
getDensity
();
let
getDensity
:
number
=
pixelMap
.
getDensity
();
```
3.
读取并修改目标区域像素数据,写回原图。
...
...
zh-cn/application-dev/media/image-tool.md
浏览文件 @
7e6af2a2
...
...
@@ -19,15 +19,15 @@ EXIF信息的读取与编辑相关API的详细介绍请参见[API参考](../refe
import
image
from
'
@ohos.multimedia.image
'
;
// 获取沙箱路径创建ImageSource
const
fd
=
...;
// 获取需要被处理的图片的fd
const
imageSource
=
image
.
createImageSource
(
fd
);
const
fd
:
number
=
...;
// 获取需要被处理的图片的fd
const
imageSource
:
ImageSource
=
image
.
createImageSource
(
fd
);
```
2.
读取、编辑EXIF信息。
```
ts
// 读取EXIF信息,BitsPerSample为每个像素比特数
imageSource
.
getImageProperty
(
'
BitsPerSample
'
,
(
error
,
data
)
=>
{
imageSource
.
getImageProperty
(
'
BitsPerSample
'
,
(
error
:
void
,
data
:
BitsPerSample
)
=>
{
if
(
error
)
{
console
.
error
(
'
Failed to get the value of the specified attribute key of the image.And the error is:
'
+
error
);
}
else
{
...
...
@@ -37,7 +37,7 @@ EXIF信息的读取与编辑相关API的详细介绍请参见[API参考](../refe
// 编辑EXIF信息
imageSource
.
modifyImageProperty
(
'
ImageWidth
'
,
'
120
'
).
then
(()
=>
{
const
width
=
imageSource
.
getImageProperty
(
"
ImageWidth
"
);
const
width
:
number
=
imageSource
.
getImageProperty
(
"
ImageWidth
"
);
console
.
info
(
'
The new imageWidth is
'
+
width
);
})
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录