Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Graphic Ui
提交
6e80f203
G
Graphic Ui
项目概览
OpenHarmony
/
Graphic Ui
大约 1 年 前同步成功
通知
13
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Graphic Ui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6e80f203
编写于
7月 26, 2021
作者:
O
openharmony_ci
提交者:
Gitee
7月 26, 2021
浏览文件
操作
浏览文件
下载
差异文件
!312 uiview GetBitMap和Screen GetCurrentScreenBitmap 截图问题修改
Merge pull request !312 from pssea/cherry-pick-1627301716
上级
38d9c37f
cf00a553
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
18 addition
and
8 deletion
+18
-8
frameworks/common/screen.cpp
frameworks/common/screen.cpp
+16
-6
frameworks/components/ui_view.cpp
frameworks/components/ui_view.cpp
+2
-2
未找到文件。
frameworks/common/screen.cpp
浏览文件 @
6e80f203
...
@@ -45,7 +45,7 @@ bool Screen::GetCurrentScreenBitmap(ImageInfo& info)
...
@@ -45,7 +45,7 @@ bool Screen::GetCurrentScreenBitmap(ImageInfo& info)
}
}
uint16_t
screenWidth
=
BaseGfxEngine
::
GetInstance
()
->
GetScreenWidth
();
uint16_t
screenWidth
=
BaseGfxEngine
::
GetInstance
()
->
GetScreenWidth
();
uint16_t
screenHeight
=
BaseGfxEngine
::
GetInstance
()
->
GetScreenHeight
();
uint16_t
screenHeight
=
BaseGfxEngine
::
GetInstance
()
->
GetScreenHeight
();
info
.
header
.
colorMode
=
bufferInfo
->
mode
;
info
.
header
.
colorMode
=
ARGB8888
;
info
.
dataSize
=
screenWidth
*
screenHeight
*
DrawUtils
::
GetByteSizeByColorMode
(
info
.
header
.
colorMode
);
info
.
dataSize
=
screenWidth
*
screenHeight
*
DrawUtils
::
GetByteSizeByColorMode
(
info
.
header
.
colorMode
);
info
.
data
=
reinterpret_cast
<
uint8_t
*>
(
ImageCacheMalloc
(
info
));
info
.
data
=
reinterpret_cast
<
uint8_t
*>
(
ImageCacheMalloc
(
info
));
if
(
info
.
data
==
nullptr
)
{
if
(
info
.
data
==
nullptr
)
{
...
@@ -56,11 +56,21 @@ bool Screen::GetCurrentScreenBitmap(ImageInfo& info)
...
@@ -56,11 +56,21 @@ bool Screen::GetCurrentScreenBitmap(ImageInfo& info)
info
.
header
.
reserved
=
0
;
info
.
header
.
reserved
=
0
;
info
.
header
.
compressMode
=
0
;
info
.
header
.
compressMode
=
0
;
if
(
memcpy_s
(
static_cast
<
void
*>
(
const_cast
<
uint8_t
*>
(
info
.
data
)),
info
.
dataSize
,
Rect
screenRect
=
{
0
,
0
,
static_cast
<
int16_t
>
(
screenWidth
-
1
),
static_cast
<
int16_t
>
(
screenHeight
-
1
)};
bufferInfo
->
virAddr
,
info
.
dataSize
)
!=
EOK
)
{
Point
dstPos
=
{
0
,
0
};
ImageCacheFree
(
info
);
BlendOption
blendOption
;
return
false
;
blendOption
.
opacity
=
OPA_OPAQUE
;
}
BufferInfo
dstBufferInfo
;
dstBufferInfo
.
rect
=
screenRect
;
dstBufferInfo
.
mode
=
ARGB8888
;
dstBufferInfo
.
color
=
0x44
;
dstBufferInfo
.
phyAddr
=
dstBufferInfo
.
virAddr
=
static_cast
<
void
*>
(
const_cast
<
uint8_t
*>
(
info
.
data
));
dstBufferInfo
.
stride
=
screenWidth
*
4
;
// 4: bpp
dstBufferInfo
.
width
=
screenWidth
;
dstBufferInfo
.
height
=
screenHeight
;
BaseGfxEngine
::
GetInstance
()
->
Blit
(
dstBufferInfo
,
dstPos
,
*
bufferInfo
,
screenRect
,
blendOption
);
return
true
;
return
true
;
}
}
...
...
frameworks/components/ui_view.cpp
浏览文件 @
6e80f203
...
@@ -917,7 +917,7 @@ bool UIView::GetBitmap(ImageInfo& bitmap)
...
@@ -917,7 +917,7 @@ bool UIView::GetBitmap(ImageInfo& bitmap)
mask
.
Intersect
(
mask
,
screenRect
);
mask
.
Intersect
(
mask
,
screenRect
);
uint16_t
bufferWidth
=
static_cast
<
uint16_t
>
(
mask
.
GetWidth
());
uint16_t
bufferWidth
=
static_cast
<
uint16_t
>
(
mask
.
GetWidth
());
uint16_t
bufferHeight
=
static_cast
<
uint16_t
>
(
mask
.
GetHeight
());
uint16_t
bufferHeight
=
static_cast
<
uint16_t
>
(
mask
.
GetHeight
());
bitmap
.
header
.
colorMode
=
bufferInfo
->
mode
;
bitmap
.
header
.
colorMode
=
ARGB8888
;
bitmap
.
dataSize
=
bufferWidth
*
bufferHeight
*
DrawUtils
::
GetByteSizeByColorMode
(
bitmap
.
header
.
colorMode
);
bitmap
.
dataSize
=
bufferWidth
*
bufferHeight
*
DrawUtils
::
GetByteSizeByColorMode
(
bitmap
.
header
.
colorMode
);
bitmap
.
header
.
width
=
bufferWidth
;
bitmap
.
header
.
width
=
bufferWidth
;
bitmap
.
header
.
height
=
bufferHeight
;
bitmap
.
header
.
height
=
bufferHeight
;
...
@@ -937,7 +937,7 @@ bool UIView::GetBitmap(ImageInfo& bitmap)
...
@@ -937,7 +937,7 @@ bool UIView::GetBitmap(ImageInfo& bitmap)
newBufferInfo
.
rect
=
mask
;
newBufferInfo
.
rect
=
mask
;
newBufferInfo
.
width
=
bufferWidth
;
newBufferInfo
.
width
=
bufferWidth
;
newBufferInfo
.
height
=
bufferHeight
;
newBufferInfo
.
height
=
bufferHeight
;
newBufferInfo
.
mode
=
bufferInfo
->
mode
;
newBufferInfo
.
mode
=
ARGB8888
;
newBufferInfo
.
stride
=
bufferWidth
*
DrawUtils
::
GetByteSizeByColorMode
(
bitmap
.
header
.
colorMode
);
newBufferInfo
.
stride
=
bufferWidth
*
DrawUtils
::
GetByteSizeByColorMode
(
bitmap
.
header
.
colorMode
);
RootView
::
GetInstance
()
->
SaveDrawContext
();
RootView
::
GetInstance
()
->
SaveDrawContext
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录