当前位置: 首页 > article >正文

鸿蒙案例---生肖抽卡

案例源码:

Zodiac_cards: 鸿蒙生肖抽奖卡片

效果演示

初始布局

1. Badge 角标组件

此处为语雀内容卡片,点击链接查看:https://www.yuque.com/kevin-nzthp/lvl039/rccg0o4pkp3v6nua

2. Grid 布局

// 定义接口
interface ImageCount {url: ResourceStr,count: number
}@Entry@Componentstruct Index {@State images: ImageCount[] = [{ url: '/images/bg_00.png', count: 0 },{ url: '/images/bg_01.png', count: 1 },{ url: '/images/bg_02.png', count: 2 },{ url: '/images/bg_03.png', count: 3 },{ url: '/images/bg_04.png', count: 4 },{ url: '/images/bg_05.png', count: 5 },]// 控制遮罩的显隐@State maskOpacity: number = 0 // 透明度@State maskIndex: number = -1; // 显示层级// 控制图片的缩放@State maskImgX: number = 0 // 水平缩放比@State maskImgY: number = 0 // 垂直缩放比build() {Stack() {Column() {Grid() {ForEach(this.images, (item: ImageCount) => {GridItem() {Badge({count: item.count,position: BadgePosition.RightTop,style: {badgeSize: this.maskImgX,fontSize: this.maskImgY}}) {Image(item.url).width(80)}}})}.rowsTemplate('1fr 1fr').columnsTemplate('1fr 1fr 1fr').width('100%').height(300).margin({ top: 100 })Button('立即抽卡').width(200).backgroundColor('#ed5b8c').margin({ top: 50 }).onClick(()=>{// 点击时,修改遮罩参数,让遮罩显示this.maskOpacity = 1this.maskIndex = 99// 图片需要缩放this.maskImgX = 1this.maskImgY = 1})}.width('100%').height('100%').backgroundColor(Color.Pink)// 抽卡遮盖层Column({space: 30}) {Text('获得生肖卡').fontColor('#f5ebcf').fontSize(25).fontWeight(FontWeight.Bold)Image('/images/img_00.png').width(200)//控制元素的缩放.scale({x: this.maskImgX,y: this.maskImgY})Button('开心收下').width(200).height(50).backgroundColor(Color.Transparent).border({ width: 2 ,color:'#fff9e0'}).onClick(()=>{// 控制弹层显隐this.maskOpacity = 0this.maskIndex = -1// 重置缩放比为0,便于下一次进行缩放this.maskImgX = 0this.maskImgY = 0})}.justifyContent(FlexAlign.Center).width('100%').height('100%').backgroundColor('#cc000000')// 设置透明度.opacity(this.maskOpacity).zIndex(this.maskIndex)// 动画 animation 当我们元素有状态的改变,可以添加animation做动画.animation({duration: 500})}}}

抽卡遮罩层

静态页面

点击立即抽卡按钮后,会进入遮罩层,显示抽取的卡片,此时抽卡的页面转换为背景图,使用层叠布局

// 定义图片接口
interface ImageCount {url: ResourceStr,count: number
}@Entry@Componentstruct Index {// 定义图片渲染数组@State images: ImageCount[] = [{ url: '/images/bg_00.png', count: 0 },{ url: '/images/bg_01.png', count: 1 },{ url: '/images/bg_02.png', count: 2 },{ url: '/images/bg_03.png', count: 3 },{ url: '/images/bg_04.png', count: 4 },{ url: '/images/bg_05.png', count: 5 },]build() {Stack(){Column() {Grid() {ForEach(this.images, (item: ImageCount) => {GridItem() {Badge({count: item.count,position: BadgePosition.RightTop,style: {fontSize: 12,badgeSize: 16}}) {Image(item.url).width(80)}}})}.rowsTemplate('1fr 1fr').columnsTemplate('1fr 1fr 1fr').height(300).margin({top: 50, bottom: 50})// .backgroundColor(Color.Pink)Button('立即抽卡').width(200).backgroundColor('#ED5B8C')}Column({space: 30}){Text('获得生肖卡').fontColor('#F3EAD3').fontWeight(700).fontSize(24)Image('/images/img_00.png').width(200)Button('开心收下').width(200).border({width: 2,color:'#9F9C90',}).backgroundColor(Color.Transparent)}.backgroundColor('#cc000000').width('100%').height('100%').justifyContent(FlexAlign.Center)}}}

抽卡遮罩层- 显隐效果控制

添加状态变量控制遮罩层 Z 轴 和 不透明度的数值.

当点击 “立即抽卡”按钮时,显示遮罩层。(此时不能隐藏)

当点击 遮罩层“开心收下”按钮时,隐藏遮罩层。

添加动画

添加遮罩层图片的缩放

效果

// 定义图片接口
interface ImageCount {url: ResourceStr,count: number
}@Entry@Componentstruct Index {// 定义图片渲染数组@State images: ImageCount[] = [{ url: '/images/bg_00.png', count: 0 },{ url: '/images/bg_01.png', count: 1 },{ url: '/images/bg_02.png', count: 2 },{ url: '/images/bg_03.png', count: 3 },{ url: '/images/bg_04.png', count: 4 },{ url: '/images/bg_05.png', count: 5 },]// 控制遮罩的显隐@State maskOpacity: number = 0 // 透明度@State maskIndex: number = -1; // 显示层级// 控制遮罩层图片的缩放@State maskImgScaleX: number = 0 // 水平缩放比@State maskImgScaleY: number = 0 // 垂直缩放比// 获取图片build() {Stack() {// 抽卡层Column() {Grid() {ForEach(this.images, (item: ImageCount) => {GridItem() {Badge({count: item.count,position: BadgePosition.RightTop,style: {fontSize: 12,badgeSize: 16}}) {Image(item.url).width(80)}}})}.rowsTemplate('1fr 1fr').columnsTemplate('1fr 1fr 1fr').height(300).margin({ top: 50, bottom: 50 })// .backgroundColor(Color.Pink)Button('立即抽卡').width(200).backgroundColor('#ED5B8C').onClick(() => {// 点击时,修改遮罩参数,让遮罩显示this.maskOpacity = 1this.maskIndex = 99// 点击时修改遮罩层图片的缩放比this.maskImgScaleX = 1this.maskImgScaleY = 1})}// 遮罩层Column({ space: 30 }) {Text('获得生肖卡').fontColor('#F3EAD3').fontWeight(700).fontSize(24)Image('/images/img_00.png').width(200).scale({//控制图片的缩放x: this.maskImgScaleX,y: this.maskImgScaleY}).animation({// 动画duration: 500})Button('开心收下').width(200).border({width: 2,color: '#9F9C90',}).backgroundColor(Color.Transparent).onClick(() => {// 点击时,修改遮罩参数,让遮罩隐藏this.maskOpacity = 0this.maskIndex = -1//   // 点击时修改遮罩层图片的缩放比为1:1this.maskImgScaleX = 0this.maskImgScaleY = 0})}.zIndex(this.maskIndex).opacity(this.maskOpacity).backgroundColor('#cc000000').width('100%').height('100%').justifyContent(FlexAlign.Center)}}}

随机卡片

效果演示:

要获得 0-5 的整数索引,随机抽取卡片

此时可以获取随机卡片,接下来要将抽到的随机卡片显示在主页面并右上角角标显示。

// 定义图片接口
interface ImageCount {url: ResourceStr,count: number
}@Entry@Componentstruct Index {// 定义图片渲染数组@State images: ImageCount[] = [{ url: '/images/bg_00.png', count: 0 },{ url: '/images/bg_01.png', count: 0 },{ url: '/images/bg_02.png', count: 0 },{ url: '/images/bg_03.png', count: 0 },{ url: '/images/bg_04.png', count: 0 },{ url: '/images/bg_05.png', count: 0 },]// 控制遮罩的显隐@State maskOpacity: number = 0 // 透明度@State maskIndex: number = -1; // 显示层级// 控制遮罩层图片的缩放@State maskImgScaleX: number = 0 // 水平缩放比@State maskImgScaleY: number = 0 // 垂直缩放比// 获取遮罩层选择的图片Index@State maskImgIndex: number = 0build() {Stack() {// 抽卡层Column() {Grid() {ForEach(this.images, (item: ImageCount) => {GridItem() {Badge({count: item.count,position: BadgePosition.RightTop,style: {fontSize: 12,badgeSize: 16}}) {Image(item.url).width(80)}}})}.rowsTemplate('1fr 1fr').columnsTemplate('1fr 1fr 1fr').height(300).margin({ top: 50, bottom: 50 })// .backgroundColor(Color.Pink)Button('立即抽卡').width(200).backgroundColor('#ED5B8C').onClick(() => {// 点击时,修改遮罩参数,让遮罩显示this.maskOpacity = 1this.maskIndex = 99// 点击时修改遮罩层图片的缩放比this.maskImgScaleX = 1this.maskImgScaleY = 1//   // 随机获取图片的Indexthis.maskImgIndex = Math.floor(Math.random() * 6)})}// 遮罩层Column({ space: 30 }) {Text('获得生肖卡').fontColor('#F3EAD3').fontWeight(700).fontSize(24)Image(`/images/img_0${this.maskImgIndex}.png`).width(200).scale({//控制图片的缩放x: this.maskImgScaleX,y: this.maskImgScaleY}).animation({// 动画duration: 500})Button('开心收下').width(200).border({width: 2,color: '#9F9C90',}).backgroundColor(Color.Transparent).onClick(() => {// 点击时,修改遮罩参数,让遮罩隐藏this.maskOpacity = 0this.maskIndex = -1//   // 点击时修改遮罩层图片的缩放比为1:1this.maskImgScaleX = 0this.maskImgScaleY = 0//   开心收下this.images[this.maskImgIndex] = {url: `/images/img_0${this.maskImgIndex}.png`,count: this.images[this.maskImgIndex].count + 1}})}.zIndex(this.maskIndex).opacity(this.maskOpacity).backgroundColor('#cc000000').width('100%').height('100%').justifyContent(FlexAlign.Center)}}
}

抽大奖遮罩层

静态页面

// 定义图片接口
interface ImageCount {url: ResourceStr,count: number
}@Entry
@Component
struct Index {// 定义图片渲染数组@State images: ImageCount[] = [{ url: '/images/bg_00.png', count: 0 },{ url: '/images/bg_01.png', count: 0 },{ url: '/images/bg_02.png', count: 0 },{ url: '/images/bg_03.png', count: 0 },{ url: '/images/bg_04.png', count: 0 },{ url: '/images/bg_05.png', count: 0 },]// 控制遮罩的显隐@State maskOpacity: number = 0 // 透明度@State maskIndex: number = -1; // 显示层级// 控制遮罩层图片的缩放@State maskImgScaleX: number = 0 // 水平缩放比@State maskImgScaleY: number = 0 // 垂直缩放比// 获取遮罩层选择的图片Index@State maskImgIndex: number = 0build() {Stack() {// 抽卡层Column() {Grid() {ForEach(this.images, (item: ImageCount) => {GridItem() {Badge({count: item.count,position: BadgePosition.RightTop,style: {fontSize: 12,badgeSize: 16}}) {Image(item.url).width(80)}}})}.rowsTemplate('1fr 1fr').columnsTemplate('1fr 1fr 1fr').height(300).margin({ top: 50, bottom: 50 })// .backgroundColor(Color.Pink)Button('立即抽卡').width(200).backgroundColor('#ED5B8C').onClick(() => {// 点击时,修改遮罩参数,让遮罩显示this.maskOpacity = 1this.maskIndex = 99// 点击时修改遮罩层图片的缩放比this.maskImgScaleX = 1this.maskImgScaleY = 1//   // 随机获取图片的Indexthis.maskImgIndex = Math.floor(Math.random() * 6)})}// 遮罩层Column({ space: 30 }) {Text('获得生肖卡').fontColor('#F3EAD3').fontWeight(700).fontSize(24)Image(`/images/img_0${this.maskImgIndex}.png`).width(200).scale({//控制图片的缩放x: this.maskImgScaleX,y: this.maskImgScaleY}).animation({// 动画duration: 500})Button('开心收下').width(200).border({width: 2,color: '#9F9C90',}).backgroundColor(Color.Transparent).onClick(() => {// 点击时,修改遮罩参数,让遮罩隐藏this.maskOpacity = 0this.maskIndex = -1//   // 点击时修改遮罩层图片的缩放比为1:1this.maskImgScaleX = 0this.maskImgScaleY = 0//   开心收下this.images[this.maskImgIndex] = {url: `/images/img_0${this.maskImgIndex}.png`,count: this.images[this.maskImgIndex].count + 1}})}.zIndex(this.maskIndex).opacity(this.maskOpacity).backgroundColor('#cc000000').width('100%').height('100%').justifyContent(FlexAlign.Center)// 抽大奖遮罩层Column({space: 30}) {Text('恭喜获得手机一部').fontColor('#E4DDC7').fontWeight(700).fontSize(25)Image('/images/hw.png').width(300)Button('再来一次').width(200).height(50).border({width: 2,color: '#E4DDC7'}).backgroundColor(Color.Transparent)}.justifyContent(FlexAlign.Center).width('100%').height('100%').backgroundColor('#cc000000')}}
}

抽大奖遮罩层的显隐

前提:

六张卡片集齐,显示 --- 中大奖页面

默认为 false,不显示此抽大奖遮罩层

判断数组项的count, 是否都大于0, 只能有一个等于0,就意味着没及其

最终效果演示

随机奖品 & 再来一次

奖品随机抽 -》准备一个奖品数组, Math

再来一次 -》重置数据

奖品随机抽

准备奖品数组,默认抽中的奖品为空

准备随机数

在“”开心收下“”按钮下,判断是否中奖,如果中奖了,准备抽奖。

效果:

再来一次

将数据重置

效果演示:

完整代码:

import { trustedAppService } from '@kit.DeviceSecurityKit';// 定义图片接口
interface ImageCount {url: ResourceStr,count: number
}@Entry@Componentstruct Index {// 定义图片渲染数组@State images: ImageCount[] = [{ url: '/images/bg_00.png', count: 0 },{ url: '/images/bg_01.png', count: 0 },{ url: '/images/bg_02.png', count: 0 },{ url: '/images/bg_03.png', count: 0 },{ url: '/images/bg_04.png', count: 0 },{ url: '/images/bg_05.png', count: 0 },]// 奖品池@State prizePool: string[] = ['/images/pg.png','/images/hw.png','/images/xm.png']//抽中的奖品@State prize: string = '' // 默认没中奖// 控制遮罩的显隐@State maskOpacity: number = 0 // 透明度@State maskIndex: number = -1; // 显示层级// 控制遮罩层图片的缩放@State maskImgScaleX: number = 0 // 水平缩放比@State maskImgScaleY: number = 0 // 垂直缩放比// 获取遮罩层选择的图片Index@State maskImgIndex: number = 0// 控制中大奖的显隐@State isGet: boolean = false // 中大奖显隐build() {Stack() {// 抽卡层Column() {Grid() {ForEach(this.images, (item: ImageCount) => {GridItem() {Badge({count: item.count,position: BadgePosition.RightTop,style: {fontSize: 12,badgeSize: 16}}) {Image(item.url).width(80)}}})}.rowsTemplate('1fr 1fr').columnsTemplate('1fr 1fr 1fr').height(300).margin({ top: 50, bottom: 50 })// .backgroundColor(Color.Pink)Button('立即抽卡').width(200).backgroundColor('#ED5B8C').onClick(() => {// 点击时,修改遮罩参数,让遮罩显示this.maskOpacity = 1this.maskIndex = 99// 点击时修改遮罩层图片的缩放比this.maskImgScaleX = 1this.maskImgScaleY = 1//   // 随机获取图片的Indexthis.maskImgIndex = Math.floor(Math.random() * 6)})}// 遮罩层Column({ space: 30 }) {Text('获得生肖卡').fontColor('#F3EAD3').fontWeight(700).fontSize(24)Image(`/images/img_0${this.maskImgIndex}.png`).width(200).scale({//控制图片的缩放x: this.maskImgScaleX,y: this.maskImgScaleY}).animation({// 动画duration: 500})Button('开心收下').width(200).border({width: 2,color: '#9F9C90',}).backgroundColor(Color.Transparent).onClick(() => {// 点击时,修改遮罩参数,让遮罩隐藏this.maskOpacity = 0this.maskIndex = -1//   // 点击时修改遮罩层图片的缩放比为1:1this.maskImgScaleX = 0this.maskImgScaleY = 0//   开心收下this.images[this.maskImgIndex] = {url: `/images/img_0${this.maskImgIndex}.png`,count: this.images[this.maskImgIndex].count + 1}// 每次收完,要进行简单检索,判断是否集齐// 需求:判断数组项的count, 是否都大于0, 只能有一个等于0,就意味着没及其let flag: boolean = true // 假设集齐// 验证是否集齐for (let item of this.images) {if (item.count === 0) {flag = false // 没集齐break; // 只要没集齐,便可退出循环}}this.isGet = flagif (flag) {let randIndex: number = Math.floor(Math.random() * 3)this.prize = this.prizePool[randIndex]}})}.zIndex(this.maskIndex).opacity(this.maskOpacity).backgroundColor('#cc000000').width('100%').height('100%').justifyContent(FlexAlign.Center)// 抽大奖遮罩层if (this.isGet) {Column({ space: 30 }) {Text('恭喜获得手机一部').fontColor('#E4DDC7').fontWeight(700).fontSize(25)Image(this.prize).width(300)Button('再来一次').width(200).height(50).border({width: 2,color: '#E4DDC7'}).backgroundColor(Color.Transparent).onClick(() => {this.isGet = falsethis.prize = ''this.images = [{ url: '/images/bg_00.png', count: 0 },{ url: '/images/bg_01.png', count: 0 },{ url: '/images/bg_02.png', count: 0 },{ url: '/images/bg_03.png', count: 0 },{ url: '/images/bg_04.png', count: 0 },{ url: '/images/bg_05.png', count: 0 },]})}.justifyContent(FlexAlign.Center).width('100%').height('100%').backgroundColor('#cc000000')}}}
}

相关文章:

鸿蒙案例---生肖抽卡

案例源码: Zodiac_cards: 鸿蒙生肖抽奖卡片 效果演示 初始布局 1. Badge 角标组件 此处为语雀内容卡片,点击链接查看:https://www.yuque.com/kevin-nzthp/lvl039/rccg0o4pkp3v6nua 2. Grid 布局 // 定义接口 interface ImageCount {url:…...

达梦数据库-学习-18-ODBC数据源配置(Linux)

一、环境信息 名称值CPU12th Gen Intel(R) Core(TM) i7-12700H操作系统CentOS Linux release 7.9.2009 (Core)内存4G逻辑核数2DM版本1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284194-20240703-234060-20108 4 Msg Versi…...

Conda 入门指令教程

Conda 入门指令教程 Conda 是一个强大的包和环境管理工具,广泛应用于数据科学和机器学习项目中。本文将介绍 Conda 的常用指令,帮助你快速上手。 1. Conda 基础操作 查看 Conda 版本 conda --version显示当前安装的 Conda 版本。 更新 Conda conda…...

宿舍管理系统(servlet+jsp)

宿舍管理系统(servletjsp) 宿舍管理系统是一个用于管理学生宿舍信息的平台,支持超级管理员、教师端和学生端三种用户角色登录。系统功能包括宿舍管理员管理、学生管理、宿舍楼管理、缺勤记录、添加宿舍房间、心理咨询留言板、修改密码和退出系统等模块。宿舍管理员…...

驱动-兼容不同设备-container_of

驱动兼容不同类型设备 在 Linux 驱动开发中,container_of 宏常被用来实现一个驱动兼容多种不同设备的架构。这种设计模式在 Linux 内核中非常常见,特别 是在设备驱动模型中。linux内核的主要开发语言是C,但是现在内核的框架使用了非常多的面向…...

MySQLQ_数据库约束

目录 什么是数据库约束约束类型NOT NULL 非空约束UNIQUE 唯一约束PRIMARY KEY主键约束FOREIGN KEY外键约束CHECK约束DEFAULT 默认值(缺省)约束 什么是数据库约束 数据库约束就是对数据库添加一些规则,使数据更准确,关联性更强 比如加了唯一值约束&#…...

责任链设计模式(单例+多例)

目录 1. 单例责任链 2. 多例责任链 核心区别对比 实际应用场景 单例实现 多例实现 初始化 初始化责任链 执行测试方法 欢迎关注我的博客!26届java选手,一起加油💘💦👨‍🎓😄😂 最近在…...

控制反转(IoC)和依赖注入(DI)实现及常用注解

在Spring框架里,控制反转(IoC)和依赖注入(DI)是核心特性,以下将介绍实现它们的各种方式以及常用注解。 配置文件方式 详细版: Spring IoC与DI详解:从Bean概念到手写实现 XML 配置…...

DeepSeek 接入 Excel 完整教程

一、前期准备 1.1 获取 DeepSeek API 密钥 注册 DeepSeek 平台 访问 DeepSeek 官方网站(或指定的 API 服务平台,如硅基流动等)。若尚未注册,按照平台指引创建新账号并完成登录。 创建 API 密钥 进入用户控制面板,找到…...

林纳斯·托瓦兹:Linux系统之父 Git创始人

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 林纳斯托瓦兹:Linux之父、Git创始人 一、传奇人物的诞生 1. 早年生活与家…...

8. RabbitMQ 消息队列 + 结合配合 Spring Boot 框架实现 “发布确认” 的功能

8. RabbitMQ 消息队列 结合配合 Spring Boot 框架实现 “发布确认” 的功能 文章目录 8. RabbitMQ 消息队列 结合配合 Spring Boot 框架实现 “发布确认” 的功能1. RabbitMQ 消息队列 结合配合 Spring Boot 框架实现 “发布确认” 的功能1.1 回退消息 2.备用交换机3. API说…...

维港首秀!沃飞长空AE200亮相香港特别行政区

4月13日-16日,第三届香港国际创科展在香港会议展览中心盛大举办。 作为国内领先、国际一流的eVTOL主机厂,沃飞长空携旗下AE200批产构型登陆国际舞台,以前瞻性的创新技术与商业化应用潜力,吸引了来自全球17个国家及地区的行业领袖…...

ffmpeg命令(一):信息查询命令

媒体文件信息查看 命令说明ffmpeg -i input.mp4查看媒体文件基本信息(封装格式、编解码器、时长等)ffprobe input.mp4使用专用工具查看详细信息ffprobe -v error -show_format -show_streams input.mp4输出格式和流的详细信息ffprobe -v quiet -print_f…...

redis6.2.6-prometheus监控

一、软件及系统信息 redis:redis-6.2.6 redis_exporter:redis_exporter-v1.50.0.linux-amd64.tar.gz # cat /etc/anolis-release Anolis OS release 8.9 granfa; 7.5.3 二、下载地址 https://github.com/oliver006/redis_exporter/releases?page…...

MCP认证难题破解指南

一、MCP 认证体系与核心挑战 1.1 认证体系解析 MCP(Microsoft Certified Professional)作为微软认证体系的基础,覆盖操作系统、云服务、开发工具等核心领域。2025 年最新认证体系包含以下关键方向: Azure 云服务: 覆盖 Azure 虚拟机、容器化部署、云原生应用开发等核心技…...

20250415-vue-插槽-默认内容

在外部没有提供任何内容的情况下&#xff0c;可以为插槽指定默认内容。比如有这样一个 <SubmitButton> 组件: <button type"submit"><slot></slot> </button> 如果我们想在父组件没有提供任何插槽内容时再 <button> 内渲染 “…...

Ubuntu离线安装搜狗输入法

1. 下载输入法 下载搜狗输入法 2. 在联网的Ubuntu下载依赖 在联网的ubuntu上下载依赖 创建脚本download.sh mkdir deb-packages cd deb-packages packages"fcitx fcitx-libs libegl-dev libgl-dev libglu1-mesa-dev libglx-dev libgrpc1 libgrpc6 libjsoncpp1 libnss-…...

如何在idea中快速搭建一个Spring Boot项目?

文章目录 前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热启动&#xff08;热部署&#xff09;结语 前言 Spring Boot 凭借其便捷的开发特性&#xff0c;极大提升了开发效率&#xff0c;为 Java 开发工作带来诸多便利。许多大伙伴希望快速…...

itext7 html2pdf 将html文本转为pdf

1、将html转为pdf需求分析 经常会看到爬虫有这样的需求&#xff0c;将某一个网站上的数据&#xff0c;获取到了以后&#xff0c;进行分析&#xff0c;然后将需要的数据进行存储&#xff0c;也有将html转为pdf进行存储&#xff0c;作为原始存档&#xff0c;当然这里看具体的需求…...

边缘计算场景下的模型轻量化:TensorRT部署YOLOv7的端到端优化指南

一、边缘计算场景下的技术挑战与优化路径 在边缘设备&#xff08;如Jetson系列&#xff09;部署YOLOv7需兼顾模型精度、推理速度与功耗限制三重约束。TensorRT作为NVIDIA官方推理加速库&#xff0c;通过算子融合、量化压缩和内存复用等优化技术&#xff0c;可将模型推理速度提…...

golang 在windows 系统的交叉编译

基本交叉编译命令 GOOS目标操作系统 GOARCH目标架构 go build -o 输出文件名 包路径 编译 Linux 64位程序 set GOOSlinux set GOARCHamd64 go build -o myapp-linux main.go 编译 MacOS (Darwin) 64位程序 set GOOSdarwin set GOARCHamd64 go build -o myapp-macos main.go …...

docker compose搭建博客wordpress

一、前言 docker安装等入门知识见我之前的这篇文章 https://blog.csdn.net/m0_73118788/article/details/146986119?fromshareblogdetail&sharetypeblogdetail&sharerId146986119&sharereferPC&sharesourcem0_73118788&sharefromfrom_link 1.1 docker co…...

VueDOMPurifyHTML 防止 ​​XSS(跨站脚本攻击)​​ 风险

VueDOMPurifyHTML 是一个 ​​Vue.js 插件​​&#xff0c;用于在 v-html 指令中安全地渲染 HTML 内容&#xff0c;防止 ​​XSS&#xff08;跨站脚本攻击&#xff09;​​ 风险。 ​​作用​​ ​​解决 v-html 的安全问题​​ Vue 的 v-html 会直接渲染原始 HTML&#xff0…...

代码随想录算法训练营Day30

力扣452.用最少数量的箭引爆气球【medium】 力扣435.无重叠区间【medium】 力扣763.划分字母区间【medium】 力扣56.合并区间【medium】 一、力扣452.用最少数量的箭引爆气球【medium】 题目链接&#xff1a;力扣452.用最少数量的箭引爆气球 视频链接&#xff1a;代码随想录 题…...

国内开源医疗模型研究报告

引言 随着人工智能技术的快速发展&#xff0c;医疗AI领域正经历前所未有的变革。开源医疗模型作为这一领域的核心技术基础设施&#xff0c;不仅推动了医疗智能化进程&#xff0c;也为医疗工作者提供了强大的辅助工具。本报告将深入探讨国内优秀的开源医疗模型&#xff0c;分析…...

无感改造,完美监控:Docker 多阶段构建 Go 应用无侵入观测

作者&#xff1a;牧思 背景 随着云原生的普及&#xff0c;Golang 编程语言变得越来越热门。相比 Java&#xff0c;Golang 凭借其轻量&#xff0c;易学习的特点得到了越来越多工程师的青睐&#xff0c;然而由于 Golang 应用需要被编译成二进制文件再进行运行&#xff0c;Golan…...

音乐产业新玩法:NFTs如何颠覆传统与挑战未来?

音乐产业新玩法&#xff1a;NFTs如何颠覆传统与挑战未来&#xff1f; 近年来&#xff0c;NFT&#xff08;Non-Fungible Token&#xff0c;非同质化代币&#xff09;像一颗新星&#xff0c;迅速在数字艺术、游戏等领域掀起了革命。而在音乐产业&#xff0c;NFT不仅是一种数字所…...

006.Gitlab CICD流水线触发

文章目录 触发方式介绍触发方式类型 触发方式实践分支名触发MR触发tag触发手动人为触发定时任务触发指定文件变更触发结合分支及文件变更触发正则语法触发 触发方式介绍 触发方式类型 Gitlab CICD流水线的触发方式非常灵活&#xff0c;常见的有如下几类触发方式&#xff1a; …...

512天,倔强生长:一位技术创作者的独白

亲爱的读者与同行者&#xff1a; 我是倔强的石头_&#xff0c;今天是我在CSDN成为创作者的第512天。当系统提示我写下这篇纪念日文章时&#xff0c;我恍惚间想起了2023年11月19日的那个夜晚——指尖敲下《开端——》的标题&#xff0c;忐忑又坚定地按下了“发布”键。那时的我…...

【目标检测】【YOLO综述】YOLOv1到YOLOv10:最快速、最精准的实时目标检测系统

YOLOv1 to YOLOv10&#xff1a; The fastest and most accurate real-time object detection systems YOLOv1到YOLOv10&#xff1a;最快速、最精准的实时目标检测系统 论文链接 0.论文摘要 摘要——本文是对YOLO系列系统的全面综述。与以往文献调查不同&#xff0c;本综述文…...