Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
233dd608
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看板
提交
233dd608
编写于
7月 26, 2022
作者:
X
xu-rui-w
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
同步master
Signed-off-by:
N
xu-rui-w
<
xurui101@huawei.com
>
上级
7e7f9f71
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
200 addition
and
75 deletion
+200
-75
zh-cn/application-dev/reference/apis/js-apis-image.md
zh-cn/application-dev/reference/apis/js-apis-image.md
+200
-75
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-image.md
浏览文件 @
233dd608
...
...
@@ -65,8 +65,13 @@ createPixelMap(colors: ArrayBuffer, options: InitializationOptions, callback: As
const
color
=
new
ArrayBuffer
(
96
);
let
bufferArr
=
new
Uint8Array
(
color
);
let
opts
=
{
editable
:
true
,
pixelFormat
:
3
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
(
pixelmap
)
=>
{
})
image
.
createPixelMap
(
color
,
opts
,
(
error
,
pixelmap
)
=>
{
if
(
error
)
{
console
.
log
(
'
Failed to create pixelmap.
'
);
}
else
{
console
.
log
(
'
Succeeded in creating pixelmap.
'
);
}
})
```
## PixelMap<sup>7+</sup>
...
...
@@ -77,9 +82,9 @@ image.createPixelMap(color, opts, (pixelmap) => {
**系统能力:**
SystemCapability.Multimedia.Image.Core
| 名称
| 类型 | 可读 | 可写 | 说明 |
| ----------
-------------
| ------- | ---- | ---- | -------------------------- |
| isEditable
<sup>
7+
</sup>
| boolean | 是 | 否 | 设定是否图像像素可被编辑。 |
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ---------- | ------- | ---- | ---- | -------------------------- |
| isEditable | boolean | 是 | 否 | 设定是否图像像素可被编辑。 |
### readPixelsToBuffer<sup>7+</sup>
...
...
@@ -91,20 +96,20 @@ readPixelsToBuffer(dst: ArrayBuffer): Promise\<void>
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ----------- | ---- | ------------------------------------------------------------ |
| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |
| 参数名 | 类型 | 必填 | 说明
|
| ------ | ----------- | ---- | ------------------------------------------------------------
-----------------------------------------
|
| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。
缓冲区大小由getPixelBytesNumber接口获取。
|
**返回值:**
| 类型 | 说明 |
|
:------------- | :
---------------------------------------------- |
|
-------------- | -
---------------------------------------------- |
| Promise
\<
void> | Promise实例,用于获取结果,失败时返回错误信息。 |
**示例:**
```
js
const
readBuffer
=
new
ArrayBuffer
(
400
);
const
readBuffer
=
new
ArrayBuffer
(
96
);
pixelmap
.
readPixelsToBuffer
(
readBuffer
).
then
(()
=>
{
console
.
log
(
'
Succeeded in reading image pixel data.
'
);
//符合条件则进入
}).
catch
(
error
=>
{
...
...
@@ -122,15 +127,15 @@ readPixelsToBuffer(dst: ArrayBuffer, callback: AsyncCallback\<void>): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------------------------------------ |
| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。 |
| callback | AsyncCallback
\<
void> | 是 | 获取回调,失败时返回错误信息。 |
| 参数名 | 类型 | 必填 | 说明
|
| -------- | -------------------- | ---- | ------------------------------------------------------------
-----------------------------------------
|
| dst | ArrayBuffer | 是 | 缓冲区,函数执行结束后获取的图像像素数据写入到该内存区域内。
缓冲区大小由getPixelBytesNumber接口获取。
|
| callback | AsyncCallback
\<
void> | 是 | 获取回调,失败时返回错误信息。
|
**示例:**
```
js
const
readBuffer
=
new
ArrayBuffer
(
400
);
const
readBuffer
=
new
ArrayBuffer
(
96
);
pixelmap
.
readPixelsToBuffer
(
readBuffer
,
(
err
,
res
)
=>
{
if
(
err
)
{
console
.
log
(
'
Failed to read image pixel data.
'
);
//不符合条件则进入
...
...
@@ -274,7 +279,7 @@ writePixels(area: PositionArea, callback: AsyncCallback\<void>): void
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------------------ | ---- | ------------------------------ |
| area |
[
PositionArea
](
#positionarea7
)
| 是 | 区域,根据区域写入。 |
| callback
:
| AsyncCallback
\<
void> | 是 | 获取回调,失败时返回错误信息。 |
| callback
| AsyncCallback
\<
void> | 是 | 获取回调,失败时返回错误信息。 |
**示例:**
...
...
@@ -920,6 +925,33 @@ let path = this.context.getApplicationContext().fileDirs + "test.jpg";
const
imageSourceApi
=
image
.
createImageSource
(
path
);
```
## image.createImageSource<sup>9+</sup>
createImageSource(uri: string, options: SourceOptions): ImageSource
通过传入的uri创建图片源实例。
**系统能力:**
SystemCapability.Multimedia.Image.ImageSource
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------- | ---- | ----------------------------------- |
| uri | string | 是 | 图片路径,当前仅支持应用沙箱路径。 |
| options |
[
SourceOptions
](
#SourceOptions
)
| 是 | 图片属性,包括图片序号与默认属性值。|
**返回值:**
| 类型 | 说明 |
| --------------------------- | -------------------------------------------- |
|
[
ImageSource
](
#imagesource
)
| 返回ImageSource类实例,失败时返回undefined。 |
**示例:**
```
js
const
imageSourceApi
=
image
.
createImageSource
(
'
/sdcard/test.jpg
'
);
```
## image.createImageSource<sup>7+</sup>
createImageSource(fd: number): ImageSource
...
...
@@ -943,7 +975,34 @@ createImageSource(fd: number): ImageSource
**示例:**
```
js
const
imageSourceApi
=
image
.
createImageSource
(
0
)
const
imageSourceApi
=
image
.
createImageSource
(
0
);
```
## image.createImageSource<sup>9+</sup>
createImageSource(fd: number, options: SourceOptions): ImageSource
通过传入文件描述符来创建图片源实例。
**系统能力:**
SystemCapability.Multimedia.Image.ImageSource
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------------------------- | ---- | ----------------------------------- |
| fd | number | 是 | 文件描述符fd。 |
| options |
[
SourceOptions
](
#SourceOptions
)
| 是 | 图片属性,包括图片序号与默认属性值。|
**返回值:**
| 类型 | 说明 |
| --------------------------- | -------------------------------------------- |
|
[
ImageSource
](
#imagesource
)
| 返回ImageSource类实例,失败时返回undefined。 |
**示例:**
```
js
const
imageSourceApi
=
image
.
createImageSource
(
fd
);
```
## image.createImageSource<sup>9+</sup>
...
...
@@ -967,9 +1026,64 @@ const buf = new ArrayBuffer(96);
const
imageSourceApi
=
image
.
createImageSource
(
buf
);
```
## image.createImageSource<sup>9+</sup>
createImageSource(buf: ArrayBuffer, options: SourceOptions): ImageSource
通过缓冲区创建图片源实例。
**系统能力:**
SystemCapability.Multimedia.Image.ImageSource
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | -------------------------------- | ---- | ------------------------------------ |
| buf | ArrayBuffer | 是 | 图像缓冲区数组。 |
| options |
[
SourceOptions
](
#SourceOptions
)
| 是 | 图片属性,包括图片序号与默认属性值。 |
**返回值:**
| 类型 | 说明 |
| --------------------------- | -------------------------------------------- |
|
[
ImageSource
](
#imagesource
)
| 返回ImageSource类实例,失败时返回undefined。 |
**示例:**
```
js
const
data
=
new
ArrayBuffer
(
112
);
const
imageSourceApi
=
image
.
createImageSource
(
data
);
```
## image.CreateIncrementalSource<sup>9+</sup>
CreateIncrementalSource(buf: ArrayBuffer): ImageSource
通过缓冲区以增量的方式创建图片源实例。
**系统能力:**
SystemCapability.Multimedia.Image.ImageSource
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ------------| ---- | ----------|
| buf | ArrayBuffer | 是 | 增量数据。|
**返回值:**
| 类型 | 说明 |
| --------------------------- | --------------------------------- |
|
[
ImageSource
](
#imagesource
)
| 返回图片源,失败时返回undefined。 |
**示例:**
```
js
const
buf
=
new
ArrayBuffer
(
96
);
const
imageSourceApi
=
image
.
CreateIncrementalSource
(
buf
);
```
## image.CreateIncrementalSource<sup>9+</sup>
function
CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource
CreateIncrementalSource(buf: ArrayBuffer, options?: SourceOptions): ImageSource
通过缓冲区以增量的方式创建图片源实例。
...
...
@@ -1104,8 +1218,8 @@ getImageProperty(key:string, options?: GetImagePropertyOptions): Promise\<string
**返回值:**
| 类型 | 说明 |
| ---------------- | ------------------------------------------------------------ |
| 类型 | 说明
|
| ---------------- | ------------------------------------------------------------
-----
|
| Promise
\<
string> | Promise实例,用于异步获取图片属性值,如获取失败则返回属性默认值。 |
**示例:**
...
...
@@ -1154,11 +1268,11 @@ getImageProperty(key:string, options: GetImagePropertyOptions, callback: AsyncCa
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
| key | string | 是 | 图片属性名。 |
| options |
[
GetImagePropertyOptions
](
#getimagepropertyoptions7
)
| 是 | 图片属性,包括图片序号与默认属性值。 |
| callback | AsyncCallback
\<
string> | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。
|
| 参数名 | 类型 | 必填 | 说明
|
| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------
-
|
| key | string | 是 | 图片属性名。
|
| options |
[
GetImagePropertyOptions
](
#getimagepropertyoptions7
)
| 是 | 图片属性,包括图片序号与默认属性值。
|
| callback | AsyncCallback
\<
string> | 是 | 获取图片属性回调,返回图片属性值,如获取失败则返回属性默认值。|
**示例:**
...
...
@@ -1197,7 +1311,7 @@ modifyImageProperty(key: string, value: string): Promise\<void>
**示例:**
```
js
imageSourceApi
.
modifyImageProperty
(
"
ImageWidth
"
,
"
abc
"
)
imageSourceApi
.
modifyImageProperty
(
"
ImageWidth
"
,
"
120
"
)
.
then
(()
=>
{
const
w
=
imageSourceApi
.
getImageProperty
(
"
ImageWidth
"
)
console
.
info
(
'
w
'
,
w
);
...
...
@@ -1206,7 +1320,7 @@ imageSourceApi.modifyImageProperty("ImageWidth", "abc")
### modifyImageProperty<sup>9+</sup>
modifyImageProperty(key: string, value: string, callback: AsyncCallback
<void>
): void
modifyImageProperty(key: string, value: string, callback: AsyncCallback
\
<
void>): void
通过指定的键修改图片属性的值,callback形式返回结果。
...
...
@@ -1223,7 +1337,7 @@ modifyImageProperty(key: string, value: string, callback: AsyncCallback<void>):
**示例:**
```
js
imageSourceApi
.
modifyImageProperty
(
"
ImageWidth
"
,
"
abc
"
,()
=>
{})
imageSourceApi
.
modifyImageProperty
(
"
ImageWidth
"
,
"
120
"
,()
=>
{})
```
### updateData<sup>9+</sup>
...
...
@@ -1261,7 +1375,7 @@ imageSourceIncrementalSApi.updateData(array, false, 0, 10).then(data => {
### updateData<sup>9+</sup>
updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback
<void>
): void
updateData(buf: ArrayBuffer, isFinished: boolean, value: number, length: number, callback: AsyncCallback
\
<
void>): void
更新增量数据,callback形式返回结果。
...
...
@@ -1335,11 +1449,9 @@ createPixelMap(callback: AsyncCallback\<PixelMap>): void
**示例:**
```
js
imageSourceApi
.
createPixelMap
(
pixelmap
=>
{
console
.
log
(
'
Succeeded in creating pixelmap object.
'
);
}).
catch
(
error
=>
{
console
.
log
(
'
Failed to create pixelmap object.
'
);
})
imageSourceApi
.
createPixelMap
((
err
,
pixelmap
)
=>
{
console
.
info
(
'
Succeeded in creating pixelmap object.
'
)
;
})
```
### createPixelMap<sup>7+</sup>
...
...
@@ -1418,7 +1530,7 @@ createImagePacker(): ImagePacker
创建ImagePacker实例。
**系统能力:**
SystemCapability.Multimedia.Image.Image
Receiv
er
**系统能力:**
SystemCapability.Multimedia.Image.Image
Pack
er
**返回值:**
...
...
@@ -1486,8 +1598,8 @@ packing(source: ImageSource, option: PackingOption): Promise\<ArrayBuffer>
**返回值:**
| 类型 | 说明 |
|
:--------------------------- | :
-------------------------------------------- |
| Promise
\<
ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。 |
|
---------------------------- | -
-------------------------------------------- |
| Promise
\<
ArrayBuffer>
| Promise实例,用于异步获取压缩或打包后的数据。 |
**示例:**
...
...
@@ -1547,9 +1659,9 @@ packing(source: PixelMap, option: PackingOption): Promise\<ArrayBuffer>
**返回值:**
| 类型
| 说明
|
|
:--------------------------- | :
-------------------------------------------- |
| Promise
\<
ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。
|
| 类型
| 说明
|
|
--------------------- |
-------------------------------------------- |
| Promise
\<
ArrayBuffer> | Promise实例,用于异步获取压缩或打包后的数据。|
**示例:**
...
...
@@ -1596,9 +1708,9 @@ release(): Promise\<void>
**返回值:**
| 类型 | 说明
|
|
:------------- | :
------------------------------------------------------ |
| Promise
\<
void> | Promise实例,用于异步获取释放结果,失败时返回错误信息。
|
| 类型 | 说明 |
|
-------------- |
------------------------------------------------------ |
| Promise
\<
void> | Promise实例,用于异步获取释放结果,失败时返回错误信息。|
**示例:**
...
...
@@ -1649,11 +1761,11 @@ var receiver = image.createImageReceiver(8192, 8, 4, 8);
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImageReceiver
| 名称
| 类型 | 可读 | 可写 | 说明 |
| --------
-------------
| ---------------------------- | ---- | ---- | ------------------ |
| size
<sup>
9+
</sup>
|
[
Size
](
#size
)
| 是 | 否 | 图片大小。 |
| capacity
<sup>
9+
</sup>
| number | 是 | 否 | 同时访问的图像数。 |
| format
<sup>
9+
</sup>
|
[
ImageFormat
](
#imageformat9
)
| 是 | 否 | 图像格式。 |
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | ---------------------------- | ---- | ---- | ------------------ |
| size |
[
Size
](
#size
)
| 是 | 否 | 图片大小。 |
| capacity | number | 是 | 否 | 同时访问的图像数。 |
| format |
[
ImageFormat
](
#imageformat9
)
| 是 | 否 | 图像格式。 |
### getReceivingSurfaceId<sup>9+</sup>
...
...
@@ -1878,11 +1990,11 @@ receiver.release().then(() => {
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
| 名称
| 类型 | 可读 | 可写 | 说明 |
| --------
-------------
| ------------------ | ---- | ---- | -------------------------------------------------- |
| clipRect
<sup>
9+
</sup>
|
[
Region
](
#region7
)
| 是 | 是 | 要裁剪的图像区域。 |
| size
<sup>
9+
</sup>
|
[
Size
](
#size
)
| 是 | 否 | 图像大小。 |
| format
<sup>
9+
</sup>
| number | 是 | 否 | 图像格式,参考
[
PixelMapFormat
](
#pixelmapformat7
)
。 |
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | ------------------ | ---- | ---- | -------------------------------------------------- |
| clipRect |
[
Region
](
#region7
)
| 是 | 是 | 要裁剪的图像区域。 |
| size |
[
Size
](
#size
)
| 是 | 否 | 图像大小。 |
| format | number | 是 | 否 | 图像格式,参考
[
PixelMapFormat
](
#pixelmapformat7
)
。 |
### getComponent<sup>9+</sup>
...
...
@@ -2032,8 +2144,8 @@ img.release().then(() =>{
| 名称 | 默认值 | 描述 |
| --------- | ------ | ----------------- |
| UNKNOWN | 0 | 未知格式。 |
| RGBA_8888 | 3 | 格式为RGBA_8888。 |
| RGB_565 | 2 | 格式为RGB_565。 |
| RGBA_8888 | 3 | 格式为RGBA_8888。 |
## AlphaType<sup>9+</sup>
...
...
@@ -2059,19 +2171,32 @@ img.release().then(() =>{
| CENTER_CROP | 1 | 缩放图像以填充目标图像区域并居中裁剪区域外的效果。 |
| FIT_TARGET_SIZE | 2 | 图像适合目标尺寸的效果。 |
## SourceOptions<sup>9+</sup>
ImageSource的初始化选项。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ----------------- | ---------------------------------- | ---- | ---- | ------------------ |
| sourceDensity | number | 是 | 是 | ImageSource的密度。|
| sourcePixelFormat |
[
PixelMapFormat
](
#pixelmapformat7
)
| 是 | 是 | 图片像素格式。 |
| sourceSize |
[
Size
](
#size
)
| 是 | 是 | 图像像素大小。 |
## InitializationOptions<sup>8+</sup>
PixelMap的初始化选项。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Co
d
e
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Co
r
e
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ---------------------- | ---------------------------------- | ---- | ---- | -------------- |
| alphaType
<sup>
9+
</sup>
|
[
AlphaType
](
#alphatype9
)
| 是 | 是 | 透明度。 |
| editable | boolean | 是 | 是 | 是否可编辑。 |
| pixelFormat |
[
PixelMapFormat
](
#pixelmapformat7
)
| 是 | 是 | 像素格式。 |
| scaleMode
<sup>
9+
</sup>
|
[
ScaleMode
](
#scalemode9
)
| 是 | 是 | 缩略值。 |
| size |
[
Size
](
#size
)
| 是 | 是 | 创建图片大小。 |
| 名称
| 类型 | 可读 | 可写 | 说明 |
| ----------------------
--
| ---------------------------------- | ---- | ---- | -------------- |
| alphaType
<sup>
9+
</sup>
|
[
AlphaType
](
#alphatype9
)
| 是 | 是 | 透明度。 |
| editable
| boolean | 是 | 是 | 是否可编辑。 |
| pixelFormat
|
[
PixelMapFormat
](
#pixelmapformat7
)
| 是 | 是 | 像素格式。 |
| scaleMode
<sup>
9+
</sup>
|
[
ScaleMode
](
#scalemode9
)
| 是 | 是 | 缩略值。 |
| size
|
[
Size
](
#size
)
| 是 | 是 | 创建图片大小。 |
## DecodingOptions<sup>7+</sup>
...
...
@@ -2107,9 +2232,9 @@ PixelMap的初始化选项。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image.ImagePacker
| 名称 | 类型 | 可读 | 可写 | 说明 |
| ------- | ------ | ---- | ---- | -------------- |
| format | string | 是 | 是 | 目标格式。 |
| 名称 | 类型 | 可读 | 可写 | 说明
|
| ------- | ------ | ---- | ---- | --------------
-------------------------------------
|
| format | string | 是 | 是 | 目标格式。
|
| quality | number | 是 | 是 | JPEG编码中设定输出图片质量的参数,取值范围为1-100。 |
## GetImagePropertyOptions<sup>7+</sup>
...
...
@@ -2129,16 +2254,16 @@ PixelMap的初始化选项。
**系统能力:**
以下各项对应的系统能力均为SystemCapability.Multimedia.Image.Core
| 名称 | 默认值
| 说明
|
| ----------------- | -----------------
|
------------------- |
| BITS_PER_SAMPLE | "BitsPerSample"
| 每个像素比特数。
|
| ORIENTATION | "Orientation"
| 图片方向。
|
| IMAGE_LENGTH | "ImageLength"
| 图片长度。
|
| IMAGE_WIDTH | "ImageWidth"
| 图片宽度。
|
| GPS_LATITUDE | "GPSLatitude"
| 图片纬度。
|
| GPS_LONGITUDE | "GPSLongitude"
| 图片经度。
|
| GPS_LATITUDE_REF | "GPSLatitudeRef"
| 纬度引用,例如N或S。
|
| GPS_LONGITUDE_REF | "GPSLongitudeRef"
| 经度引用,例如W或E。
|
| 名称 | 默认值
| 说明
|
| ----------------- | -----------------
------ | -----
------------------- |
| BITS_PER_SAMPLE | "BitsPerSample"
| 每个像素比特数。
|
| ORIENTATION | "Orientation"
| 图片方向。
|
| IMAGE_LENGTH | "ImageLength"
| 图片长度。
|
| IMAGE_WIDTH | "ImageWidth"
| 图片宽度。
|
| GPS_LATITUDE | "GPSLatitude"
| 图片纬度。
|
| GPS_LONGITUDE | "GPSLongitude"
| 图片经度。
|
| GPS_LATITUDE_REF | "GPSLatitudeRef"
| 纬度引用,例如N或S。
|
| GPS_LONGITUDE_REF | "GPSLongitudeRef"
| 经度引用,例如W或E。
|
## ImageFormat<sup>9+</sup>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录