ReactOS 图形系统分析(27):拉伸与透明传输 — stretchblt.c / transblt.c
ReactOS 图形系统分析27拉伸与透明传输 — stretchblt.c / transblt.c1. 概述stretchblt.c与transblt.c位于win32ss/gdi/eng/实现两种位块传输变体文件功能核心函数[stretchblt.c](file:///d:/reactos/win32ss/gdi/eng/stretchblt.c)拉伸位块传输StretchBlt缩放 翻转复制可带掩码/图案/ROPEngStretchBltROP/EngStretchBlt/IntEngStretchBlt/NtGdiEngStretchBlt[transblt.c](file:///d:/reactos/win32ss/gdi/eng/transblt.c)透明传输TransparentBlt指定透明色像素不写入目标EngTransparentBlt/IntEngTransparentBlt二者延续引擎渲染范式参数校验 →IntEngEnter/Leave设备表面桥梁 → 裁剪三档分发 → DIB 函数表但各有独特难点应用 StretchBlt / TransparentBlt ↓ gdi32 → NtGdiStretchBlt / NtGdiTransparentBlt ntgdi/bitblt.cDC 处理、内存位图暂存 ↓ IntEngStretchBlt / IntEngTransparentBlt驱动挂钩优先 HOOK_STRETCHBLTROP / HOOK_TRANSPARENTBLT ? → DrvStretchBltROP / DrvTransparentBlt 否则 ↓ EngStretchBltROP / EngTransparentBlt ├─ 翻转语义解码DestRect 坐标符号 → bLeftToRight/bTopToBottom ├─ 裁剪rclBounds 裁剪 三档分发源矩形按比例换算 └─ DIB_StretchBlt / DIB_TransparentBltDIB 引擎按位深实现2. 拉伸位块传输 — stretchblt.c2.1 翻转语义文件头注释的核心设计StretchBlt 的prclDest/prclSrc矩形坐标可能顺序颠倒来表示翻转。为避免改动内部函数参数表用矩形坐标相对位置编码翻转状态!bTopToBottom !bLeftToRight → 无翻转正常矩形leftright, topbottom bTopToBottom → 上下翻转leftright, topbottom bLeftToRight → 左右翻转leftright, topbottom 两者都置 → 双重翻转leftright, topbottom判定cxSrc与cxDest符号相反 →bLeftToRightTRUEcySrc与cyDest符号相反 →bTopToBottomTRUE源/目标同向缩放不算翻转。2.2 IntEngStretchBlt — 挂钩分发 快路径引擎内部入口IntEngStretchBlt(psoDest,psoSource,MaskSurf,ClipRegion,...,Rop4){/* ① 16 种翻转组合预判Case0000 ~ Case1110cxSrc/cySrc/cxDest/cyDest 符号 */Case1110(cxDest0cyDest0cxSrc0cySrc0);.../* ② 等尺寸快路径源目标同大小时根本不需要拉伸 */if(|Dest 宽高||Source 宽高|){/* 按翻转组合修正 SourceRect/DestRect 方向后 直接转 IntEngBitBlt复用《分析_4》3.1 的 BitBlt 管线 */returnIntEngBitBlt(...);}/* ③ 负向源矩形归一化同时反转源/目标坐标并取绝对值等价变换 */if(cxSrc0){交换 SourceRect 左右;交换 DestRect 左右;cxSrc-cxSrc;cxDest-cxDest;}if(cySrc0){交换上下;...}/* ④ 各种翻转组合的 ±1 修正对齐 DIB 像素网格避免采样错位 */if(Case0010||Case0111)DestRect-left--;if(Case0000||Case0101)SourceRect/DestRect left/right.../* ⑤ 裁剪源矩形按裁剪偏移比例换算InputRect (InputW * Δ) / InputClW *//* ⑥ 驱动挂钩 → 软件兜底 */if(psurfDest-flagsHOOK_STRETCHBLTROP)retGDIDEVFUNCS(psoDest).StretchBltROP(...,COLORONCOLOR,pbo,Rop4);if(!ret)retEngStretchBltROP(...);// 软件实现}要点① 16 个Case*变量预计算所有源/目标符号组合②等尺寸时退化为普通 BitBlt最常用场景零额外开销③ 翻转归一化后再做 ±1 修正保证 DIB 采样与 Windows 一致这部分代码最复杂源于像素网格对齐的边界语义。2.3 EngStretchBltROP — 软件实现win32k 导出EngStretchBltROP(psoDest,psoSource,Mask,ClipRegion,ColorTranslation,pca,BrushOrigin,prclDest,prclSrc,MaskOrigin,Mode,pbo,Rop4){if(Rop4ROP4_NOOP)returnTRUE;// 空操作快退/* 翻转判定同 2.1 */bLeftToRight(cxSrc0)!(cxDest0);bTopToBottom(cySrc0)!(cyDest0);/* 源表面经 IntEngEnter 读入临时位图无源时构造全目标矩形 */if(UsesSource)IntEngEnter(es,psoSource,InputRect,TRUE,...);/* 先用裁剪 rclBounds 裁剪源/目标矩形保持比例 */if(ClipRegion){四边夹紧 OutputRect 并同步偏移 InputRect;}/* 裁剪三档分发同《分析_26》模式 */switch(clippingType){caseDC_TRIVIAL:/* 无裁剪按翻转交换 OutputRect 边 → CallDibStretchBlt 一次 */caseDC_RECT:/* 求交 InputToCombinedRect 按 Src/Dst 比例换算 → 一次 */caseDC_COMPLEX:/* 枚举矩形逐块同表面时按方向CD_RIGHTDOWN 等防自覆盖 */}IntEngLeave(...);}CallDibStretchBlt是 PSTRETCHRECTFUNC 分发函数处理图案画刷ROP4_USES_PATTERN 非纯色时BRUSHOBJ_psoPattern后调DibFunctionsForBitmapFormat[...].DIB_StretchBlt。EngStretchBlt是EngStretchBltROP的简化包装固定ROP4_SRCCOPY、pboNULLNtGdiEngStretchBlt是 UMPD 桩SEH 探测用户COLORADJUSTMENT/RECTL/POINTL后转发。3. 透明传输 — transblt.c3.1 EngTransparentBlt — 软件实现win32k 导出EngTransparentBlt(psoDest,psoSource,Clip,ColorTranslation,DestRect,SourceRect,iTransColor,Reserved){IntEngEnter(es,psoSource,InputRect,TRUE,...);// 读源/* 目标矩形规范化 裁剪 rclBounds 四边夹紧源按比例偏移 */if(OutputRect 退化)returnTRUE;// 无可绘制区域IntEngEnter(ed,psoDest,OutputRect,FALSE,...);// 写目标switch(ClippingType)// 裁剪三档{caseDC_TRIVIAL:DIB_TransparentBlt(OutputObj,InputObj,OutputRect,InputRect,...);caseDC_RECT:求交InputToCombinedRect 比例换算 → DIB_TransparentBlt;caseDC_COMPLEX:枚举矩形逐块同表面选方向失败即中断;}IntEngLeave(ed);IntEngLeave(es);}语义核心把源中颜色等于iTransColor经ColorTranslation转换后比较的像素跳过不写入目标——实现透明背景位图贴图。注意它是1 位透明要么画要么跳过不同于《分析_26》的 alpha 半透明。3.2 IntEngTransparentBlt — 驱动挂钩分发HOOK_TRANSPARENTBLT→DrvTransparentBlt否则EngTransparentBlt。调用方[ntgdi/bitblt.c](file:///d:/reactos/win32ss/gdi/ntgdi/bitblt.c#L297)NtGdiTransparentBlt先经内存位图暂存保证源/目标不重叠。4. 与《分析_4》标注对照标注核对《_4》第 49 行stretchblt.c/transblt.c 「拉伸/透明传输」准确。补充stretchblt 独特点是翻转语义编码DestRect 坐标符号与等尺寸退化为 BitBlt 的快路径transblt 是 1 位透明色抠图非 alpha5. 源码索引文件关键内容[stretchblt.c](file:///d:/reactos/win32ss/gdi/eng/stretchblt.c)EngStretchBltROP翻转裁剪三档CallDibStretchBlt、EngStretchBltSRCCOPY 包装、IntEngStretchBlt16 Case 翻转等尺寸快路径挂钩、NtGdiEngStretchBltUMPD 桩[transblt.c](file:///d:/reactos/win32ss/gdi/eng/transblt.c)EngTransparentBlt裁剪三档→DIB_TransparentBlt、IntEngTransparentBlt挂钩源矩形换算[ntgdi/bitblt.c](file:///d:/reactos/win32ss/gdi/ntgdi/bitblt.c#L166-L839)NtGdiStretchBlt/NtGdiTransparentBlt 入口StretchBlt/TransparentBlt API[dib/dib.h](file:///d:/reactos/win32ss/gdi/dib/dib.h)DIB_StretchBlt / DIB_TransparentBlt 函数指针[eng.h](file:///d:/reactos/win32ss/gdi/eng/eng.h)ROP4 宏ROP4_USES_SOURCE/PATTERN、ROP4_NOOP关联模块基础传输IntEngBitBlt等尺寸快路径复用《分析_4》3.1设备表面桥梁IntEngEnter/Leave《分析_25》7.1颜色转换XLATEOBJ_iXlate《分析_19》裁剪枚举CLIPOBJ_bEnum《分析_4》3.2图案画刷BRUSHOBJ_psoPatternengbrush.c6. 各函数作用和使用说明6.1 stretchblt.c6.1.1 IntEngStretchBlt — 拉伸传输入口引擎内部驱动挂钩快路径BOOLIntEngStretchBlt(SURFOBJ*psoDest,SURFOBJ*psoSource,SURFOBJ*MaskSurf,CLIPOBJ*ClipRegion,XLATEOBJ*ColorTranslation,COLORADJUSTMENT*pca,RECTL*DestRect,RECTL*SourceRect,POINTL*pMaskOrigin,BRUSHOBJ*pbo,POINTL*BrushOrigin,DWORD Rop4);使用要点引擎内部首选入口[ntgdi/bitblt.c](file:///d:/reactos/win32ss/gdi/ntgdi/bitblt.c#L805) 的 StretchBlt 路径调用。ClipRegion NULL时自动用全局平凡裁剪gxcoTrivial。等尺寸快路径源/目标大小相同含翻转时直接转IntEngBitBlt不走拉伸。内部完成16 种符号组合预判、负向矩形归一化、±1 像素对齐修正、裁剪源矩形换算。驱动挂钩HOOK_STRETCHBLTROP→DrvStretchBltROPCOLORONCOLOR未挂钩或失败 →EngStretchBltROP。返回 FALSE 表示失败ROP4须为合法值IS_VALID_ROP4断言。6.1.2 EngStretchBltROP — 拉伸软件实现win32k 导出BOOLEngStretchBltROP(SURFOBJ*psoDest,SURFOBJ*psoSource,SURFOBJ*Mask,CLIPOBJ*ClipRegion,XLATEOBJ*ColorTranslation,COLORADJUSTMENT*pca,POINTL*BrushOrigin,RECTL*prclDest,RECTL*prclSrc,POINTL*MaskOrigin,ULONG Mode,BRUSHOBJ*pbo,ROP4 Rop4);使用要点最完整的拉伸入口支持掩码、颜色转换、画刷图案、ROP4与翻转。Rop4 ROP4_NOOP直接返回 TRUE空操作。翻转语义由prclDest/prclSrc坐标符号隐式表达见 2.1——调用方可通过颠倒矩形坐标请求翻转。内部先按ClipRegion-rclBounds四边夹紧目标矩形并同步偏移源矩形再裁剪三档分发。DC_COMPLEX 且源目标时自动选枚举方向CD_RIGHTDOWN/CD_LEFTDOWN/...防止自覆盖。Mode参数如COLORONCOLOR当前未用于缩放算法DIB 引擎内部决定但按 DDI 约定须传入。6.1.3 EngStretchBlt — 简化包装win32k 导出BOOLEngStretchBlt(SURFOBJ*psoDest,SURFOBJ*psoSource,SURFOBJ*Mask,CLIPOBJ*ClipRegion,XLATEOBJ*ColorTranslation,COLORADJUSTMENT*pca,POINTL*BrushOrigin,RECTL*prclDest,RECTL*prclSrc,POINTL*MaskOrigin,ULONG Mode);使用要点固定ROP4_SRCCOPY、无画刷等价纯复制拉伸。适合驱动实现DrvStretchBlt时的软件回退效果等同EngStretchBltROP(..., NULL, ROP4_SRCCOPY)。6.1.4 NtGdiEngStretchBlt — UMPD 系统调用桩BOOLNtGdiEngStretchBlt(...,PRECTL prclDest,PRECTL prclSrc,POINTL*MaskOrigin,ULONG Mode);使用要点UMPD 用户模式驱动经 gdi32 → win32u 进入内核的入口。用ProbeForRead SEH 把用户COLORADJUSTMENT/POINTL/RECTL拷入内核栈再转发EngStretchBlt。仅供 UMPD 路径内核驱动直接用EngStretchBlt/EngStretchBltROP。6.1.5 CallDibStretchBlt — DIB 分发辅助内部静态staticBOOLEANCallDibStretchBlt(SURFOBJ*psoDest,SURFOBJ*psoSource,SURFOBJ*Mask,XLATEOBJ*ColorTranslation,RECTL*OutputRect,RECTL*InputRect,POINTL*MaskOrigin,BRUSHOBJ*pbo,POINTL*BrushOrigin,ROP4 Rop4);使用要点仅被EngStretchBltROP的裁剪三档调用PSTRETCHRECTFUNC 类型。处理图案画刷ROP4_USES_PATTERN且非纯色iSolidColor0xFFFFFFFF时取BRUSHOBJ_psoPattern取不到返回 FALSE。最终调DIB_StretchBlt进入 DIB 引擎按位深实现。6.2 transblt.c6.2.1 EngTransparentBlt — 透明传输软件实现win32k 导出BOOLEngTransparentBlt(SURFOBJ*psoDest,SURFOBJ*psoSource,CLIPOBJ*Clip,XLATEOBJ*ColorTranslation,PRECTL DestRect,PRECTL SourceRect,ULONG iTransColor,ULONG Reserved);参数说明iTransColor透明色源像素颜色经 ColorTranslation 转换后比较Reserved保留传 0使用要点源中颜色等于iTransColor的像素跳过不写1 位透明非 alpha。内部IntEngEnter读源/写目标自动支持设备表面。裁剪三档分发DC_COMPLEX 同表面时选枚举方向退化目标矩形直接返回 TRUE。返回 FALSE 表示失败含未识别的裁剪类型。6.2.2 IntEngTransparentBlt — 驱动挂钩分发内部BOOLIntEngTransparentBlt(SURFOBJ*psoDest,SURFOBJ*psoSource,CLIPOBJ*Clip,XLATEOBJ*ColorTranslation,PRECTL DestRect,PRECTL SourceRect,ULONG iTransColor,ULONG Reserved);使用要点引擎内部首选入口[ntgdi/bitblt.c](file:///d:/reactos/win32ss/gdi/ntgdi/bitblt.c#L297) 的NtGdiTransparentBlt调用。Clip NULL时用gxcoTrivial非 TRIVIAL 时先按rclBounds求交并按比例换算源矩形。HOOK_TRANSPARENTBLT→DrvTransparentBlt未挂钩或失败 →EngTransparentBlt。Reserved必须传 0。本文档基于 ReactOS 源代码win32ss/gdi/eng/stretchblt.c、transblt.c及关联模块分析2026 年 8 月

相关新闻

老游戏一开就闪退?三步用好DDrawCompat,让DirectDraw经典在Win10/11满血复活

老游戏一开就闪退?三步用好DDrawCompat,让DirectDraw经典在Win10/11满血复活

老游戏一开就闪退?三步用好DDrawCompat,让DirectDraw经典在Win10/11满血复活 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://…

2026/8/15 14:52:21 阅读更多 →
一文搞定Windows与Office激活难题:KMS_VL_ALL_AIO智能激活脚本答疑实战指南

一文搞定Windows与Office激活难题:KMS_VL_ALL_AIO智能激活脚本答疑实战指南

一文搞定Windows与Office激活难题:KMS_VL_ALL_AIO智能激活脚本答疑实战指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 系统右下角的水印、Office里灰色的保存按钮、突然锁定的编…

2026/8/16 14:54:04 阅读更多 →
GTA4图形修复终极指南:GTAIV.EFLC.FusionFix让2008年的自由城在现代PC上重获新生

GTA4图形修复终极指南:GTAIV.EFLC.FusionFix让2008年的自由城在现代PC上重获新生

GTA4图形修复终极指南:GTAIV.EFLC.FusionFix让2008年的自由城在现代PC上重获新生 【免费下载链接】GTAIV.EFLC.FusionFix This project aims to fix or address some issues in Grand Theft Auto IV: The Complete Edition 项目地址: https://gitcode.com/gh_mirr…

2026/8/15 14:51:20 阅读更多 →

最新新闻

无损图片转PDF:img2pdf 三分钟上手与批量自动化实战

无损图片转PDF:img2pdf 三分钟上手与批量自动化实战

无损图片转PDF:img2pdf 三分钟上手与批量自动化实战 【免费下载链接】img2pdf mirror of https://gitlab.mister-muffin.de/josch/img2pdf for Travis and appveyor CI 项目地址: https://gitcode.com/gh_mirrors/im/img2pdf 前阵子,一位做摄影画…

2026/8/16 17:01:21 阅读更多 →
AXPhotoViewer 快速上手:CocoaPods 安装与示例工程跑通教程

AXPhotoViewer 快速上手:CocoaPods 安装与示例工程跑通教程

AXPhotoViewer 快速上手:CocoaPods 安装与示例工程跑通教程 【免费下载链接】AXPhotoViewer An iOS/tvOS photo gallery viewer, useful for viewing a large (or small!) number of photos. 项目地址: https://gitcode.com/gh_mirrors/ax/AXPhotoViewer AXP…

2026/8/16 17:01:21 阅读更多 →
杰理之文件eq效果当成自定义模式参与效果切换【篇】

杰理之文件eq效果当成自定义模式参与效果切换【篇】

原理:把外部EQ读取到系数表,参与到效果切换 实现:具体可参考demo

2026/8/16 17:01:21 阅读更多 →
ESP32 Arduino开发从零上手:环境配置、引脚接线到联网上云的完整路线图

ESP32 Arduino开发从零上手:环境配置、引脚接线到联网上云的完整路线图

ESP32 Arduino开发从零上手:环境配置、引脚接线到联网上云的完整路线图 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 本文的主角是 arduino-esp32 项目——一…

2026/8/16 17:01:21 阅读更多 →
3分钟上手 gmail-generator:让脚本替你自动批量创建随机 Gmail 账号

3分钟上手 gmail-generator:让脚本替你自动批量创建随机 Gmail 账号

3分钟上手 gmail-generator:让脚本替你自动批量创建随机 Gmail 账号 【免费下载链接】gmail-generator ✉️ Python script that generates a new Gmail account with random credentials 项目地址: https://gitcode.com/gh_mirrors/gm/gmail-generator 你手…

2026/8/16 17:01:21 阅读更多 →
VCMI安卓版安装终极指南:手机10分钟玩上英雄无敌3的完整攻略

VCMI安卓版安装终极指南:手机10分钟玩上英雄无敌3的完整攻略

VCMI安卓版安装终极指南:手机10分钟玩上英雄无敌3的完整攻略 【免费下载链接】vcmi Open-source engine for Heroes of Might and Magic III 项目地址: https://gitcode.com/gh_mirrors/vc/vcmi 核心关键词:VCMI安卓版安装 长尾关键词&#xff1a…

2026/8/16 17:00:13 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →