logo
积分中心
实战分享:怎么在 HarmonyOS 7 里通过文字找到想要的图片?#向光而行 码向未来
头像 打包的狐狸 2026-10-21 07:17:07    发布
0 浏览 0 点赞 0 收藏

手机里保存的图片越来越多以后,我经常遇到一个问题:明明记得自己拍过某张照片,却想不起它的文件名,也不记得具体是哪一天拍的。

如果是普通文件搜索,只能依靠文件名、时间等信息。可用户记住的往往不是这些字段,而是图片的内容。

比如“那张桌上有咖啡和电脑的照片”,或者“之前拍的红色背包”。

HarmonyOS 7 的官方能力介绍中提到了通过文本搜索图片的能力,支持基于文本语义检索图片。

这让我想到,可以围绕图片语义搜索做一个轻量级的资料管理应用。

先想清楚搜索需要哪些数据

语义搜索的具体实现取决于所使用的官方能力。站在应用业务层,我更关心的是怎样接收查询、展示结果,以及如何处理没有匹配结果的情况。

先定义一个搜索结果模型:

interface ImageSearchItem {

id: string;

uri: string;

description: string;

}

function filterImageItems(

items: ImageSearchItem[],

keyword: string

): ImageSearchItem[] {

const query: string = keyword.trim();

if (query.length === 0) {

return [];

}

return items.filter(

(item: ImageSearchItem) => {

return item.description.includes(query);

}

);

}

需要说明的是,这里的 filterImageItems() 只是普通文本过滤,不能实现真正的图像语义检索。它的作用是演示业务层的数据结构和空查询处理。真正的语义搜索必须调用目标版本支持的图片搜索能力。

语义搜索与关键词搜索不是一回事

普通关键词搜索更关注字符串是否匹配。语义搜索则希望理解查询与图片内容之间的关系。

例如,用户搜索“适合做工作背景的桌面照片”,图片里可能根本没有“工作背景”这几个字,但其内容可能包含桌面、电脑和办公环境。

因此,在设计结果页面时,我不会只显示一个搜索结果列表,还会考虑让用户查看图片、修改关键词,或者通过更具体的描述缩小范围。

搜索结果还需要考虑隐私

如果应用搜索的是用户个人相册,首先要遵循相册访问权限和图片数据处理规则。不能为了让搜索效果更好,就默认把所有图片上传到远端服务器。

如果所接入的能力支持端侧处理,可以评估它是否适合个人照片管理等场景。但是否完全端侧运行、具体数据怎样处理,必须以对应能力的官方说明为准。

另外,搜索结果应该支持用户返回原图或查看来源,避免只展示一张缩略图却无法进一步使用。

我会怎么验证效果?

我会先准备一组具有不同内容的图片,再用多种表达进行查询。例如,同一组图片分别使用“红色背包”“旅行时的背包”和“户外用品”等词语进行搜索。

观察不同描述下的结果变化,可以帮助我们判断搜索能力是否符合真实需求。

对开发者来说,文本搜索图片的价值并不只是增加一个新按钮,而是让图片管理从依赖文件名和时间,进一步转向依赖内容和语义。


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除

京ICP备:2022009079号-2

京公网安备:11010502051901号

ICP证:京B2-20230255