.cur 鼠标光标编辑器

详解透明贴图和三元光栅操作 - CodeBus

鼠标指针文件格式解析——Windows(二) (qq.com)

[C/C++] RGBA数组生成Windows下的ico文件_c ico格式-CSDN博客

色环设计 - CodeBus

左键绘制

右键选颜色

ctrl+右键设置鼠标热点

F1导出.cur文件


//代码来源:色环https://codebus.cn/luoyh/colorcircle
//代码来源:alpha透明贴图: https://codebus.cn/yangw/transparent-putimage//代码来源:cur格式:https://mp.weixin.qq.com/s?__biz=MzkwNzMzMjIyNg==&mid=2247486257&idx=1&sn=1656090e498c22f391c00d0857f4b856&chksm=c0db94dcf7ac1dcacd4618240e05595b984a05b55d5f9f44d277aae41f4353b06bfa5e4294c4&cur_album_id=2474385342163419137&scene=189#wechat_redirect
//代码来源:icon格式生成文件:https://blog.csdn.net/jinzhuojun/article/details/8007586 
#include <stdio.h>
#include <graphics.h>
#include<math.h>
#pragma warning(disable : 4996)		// VS2022 对某些函数警告,但是为了方便移植,就无视这些警告 这样 Devc++ VC2010 VS2022 都能跑#define PI acos(-1.0)// 鼠标文件解析
//https://mp.weixin.qq.com/s?__biz=MzkwNzMzMjIyNg==&mid=2247486257&idx=1&sn=1656090e498c22f391c00d0857f4b856&chksm=c0db94dcf7ac1dcacd4618240e05595b984a05b55d5f9f44d277aae41f4353b06bfa5e4294c4&cur_album_id=2474385342163419137&scene=189#wechat_redirect
// 代码来源
//https://blog.csdn.net/jinzhuojun/article/details/8007586
// 中文注释添加自 @ bilibili 民用级脑的研发记录
// 结构注释来自 https://learn.microsoft.com/en-us/previous-versions/ms997538(v=msdn.10)// 注意这个格式和下文中的 WrietByte 的对应关系//typedef struct
//{
//    WORD           idReserved;   // Reserved (must be 0)
//    WORD           idType;       // Resource Type (1 for icons)									// 2 指的是 cur 鼠标静态光标文件
//    WORD           idCount;      // How many images?
//    ICONDIRENTRY   idEntries[1]; // An entry for each image (idCount of 'em)
//} ICONDIR, *LPICONDIR;//typedef struct
//{
//    BYTE        bWidth;          // Width, in pixels, of the image
//    BYTE        bHeight;         // Height, in pixels, of the image
//    BYTE        bColorCount;     // Number of colors in image (0 if >=8bpp)
//    BYTE        bReserved;       // Reserved ( must be 0)
//    WORD        wPlanes;         // Color Planes
//    WORD        wBitCount;       // Bits per pixel
//    DWORD       dwBytesInRes;    // How many bytes in this resource?
//    DWORD       dwImageOffset;   // Where in the file is this image?
//} ICONDIRENTRY, *LPICONDIRENTRY;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>// 色环
void DrawColorCircle(int x, int y, int r, int h)
{int H = h;float S = 1.f;float V = 1.f;for (int i = 0; i < 360; i++){H = int(H + 1) % 360;setfillcolor(HSVtoRGB((float)H, S, V));solidpie(x - r, y - r, x + r, y + r, i * (PI / 180), (i + 1) * (PI / 180));}
}// 数据写入
void Fwrite(FILE* f, char* data, int byte)				// 一次写入 byte 个字节,且只写一次
{if(1!=fwrite(data,byte,1,f)){perror("fwrite error");exit(1);}
}
// 数据写入
void WriteByte(FILE* f, unsigned int val,int byte)		// 指定写入几个字节
{char data[4];assert(byte<=4);									// 如果它的条件返回错误,则终止程序执行——菜鸟教程可查memcpy((void*)data,(void*)&val,byte);Fwrite(f,data,byte);
}
// 生成cur 格式文件 ,改写自 icon格式文件的生成,仅仅是 wPlane wBitCount 分别作为X,Y热点
void generate_ico_file(const char* filename,char * body,int width, int height, int has_alpha,int HotX,int HotY)
{int x,y;int index=0;int Size=0;int offset = 6+ 1*16;								// 6 = 2 +2 +2,这6个byte 是ico,cur通用的文件头。 16= 1+1+1+1 +2 +2,是一个图片的索引占 16 个字节, n个图片的索引占6*16个字节,,n个图片的因为在不同设备上使用不同型号分辨率的图片,这一堆图片都在一个 icon 或cur里int bpp=32;											// 32位的位图= 8位 alpha + 8 位 R, 8 位 G, 8 位 BFILE* outfile=fopen(filename,"wb");if(outfile==NULL){perror("fopen error");exit(1);}// icon文件头,类型与图片个数WriteByte(outfile,0,2);								// idReserved 保留位,一种格式,可用区分其他文件。WriteByte(outfile,1,2);								// idType 文件类型,如果是1 ,就是icon文件,如果是2 则是cur鼠标光标文件,这类文件格式一样。WriteByte(outfile,1,2);								// idCount 拥有的图片个数,icon为在不同屏幕上正常显示,会存储多个格式的图片以备选择// 具体一个图片的索引信息WriteByte(outfile,width,1);							// bWidthWriteByte(outfile,height,1);						// bHeightWriteByte(outfile,0,1);								// bColorCountWriteByte(outfile,0,1);								// bReserveredWriteByte(outfile,HotX,2);								// wPlanes					// 这里是.cur热点位置 XWriteByte(outfile,HotY,2);							// wBitCount					// 这里是.cur热点位置 YSize = 40 + height * ((width + 31) / 32 * 32 / 8 + width * 3);	//Note 4 bytes alignment		// 这里计算文件索引头与图像数据的总数 ,40=4+4+4+2+2+4*6 个字节。 (width+31)/32是计算int 型AND 位图个数,width / 32,但是不能确定%32 的部分,所以+31 然后再除以 32 。1个int 有4个字节,共32bit,每个bit表示一个像素是否被光栅操作 AND 覆盖,行数 * 32计算一共需要多少bit ,/8是确定有多少字节。if (bpp == 32)Size += height * width;WriteByte(outfile,Size, 4);			//dwBytesInResWriteByte(outfile,offset, 4);			//dwImageOffsetWriteByte(outfile,40, 4);				//biSizeWriteByte(outfile,width, 4);			//biWidthWriteByte(outfile,2 * height, 4);		//biHeightWriteByte(outfile,1, 2);				//biPlanesWriteByte(outfile,bpp, 2);				//biBitCountWriteByte(outfile,0, 4);				//biCompressionWriteByte(outfile,0, 4);				//biSizeImageWriteByte(outfile,0, 4);				//biXPelsPerMeterWriteByte(outfile,0, 4);				//biYPelsPerMeterWriteByte(outfile,0, 4);				//biClrUsedWriteByte(outfile,0, 4);				//biClrImportant// XOR maskfor (y=height - 1 ; y >= 0; --y)   					// 调换打印高度就不会读取了 ,确定为倒置打印,windows倒着读取数据.从左往右,从下往上,所以为了图片倒着读取之后是正的,需要把原图第一行像素数据打印到倒数最后一行{for (x = 0; x < width; ++x){index = (y * width + x) * 4;WriteByte(outfile, body[index], 1);        //BlueWriteByte(outfile, body[index + 1], 1);    //GreenWriteByte(outfile, body[index + 2], 1);    //RedWriteByte(outfile, has_alpha ? body[index + 3] : 255, 1); //Alpha}}// AND maskfor (y = 0; y < (height * ((width + 31) / 32 * 32 / 8)); ++y){WriteByte(outfile, 1, 1);						// 1 在屏幕上显示图片,0则不显示图片,表示为整个图片没有。 三元光栅操作参考}fclose(outfile);
}int main()
{initgraph(1640, 980, 1);setbkcolor(GREEN);cleardevice();int** mesh;int drawdesklx;					// 绘图板左上角坐标int drawdeskly;int pixnum;						// 一个正方形瓦片边长像素int mapi;						// 一列有多少个小方格int mapj;						// 一行有多少个小方格int drawmapi;					// 网格坐标int drawmapj;int drawoldmapi;				// 同一次绘制的前一个涂色的位置int drawoldmapj;int isdraw;						// 绘制状态int drawdeskrx;					// 绘图板右下角坐标int drawdeskry;int drawsmallflag;drawsmallflag=0;drawdesklx=200;drawdeskly=200;mapi=32;						// 默认 64*64 大小的  .cur文件	// 这里改参数只会改写分辨率,一个像素对应屏幕一个或多个像素,但不会改变图标大小。数值过大会生成失败,原因是int数值上限比较小,不够存储数据了mapj=32;														// 这里改参数只会改写分辨率,一个像素对应屏幕一个或多个像素,但不会改变图标大小。 数值过大会生成失败,原因是int数值上限比较小,不够存储数据了drawmapi=-1;drawmapj=-1;pixnum = 16 ;drawoldmapi=-1;drawoldmapj=-1;drawdeskrx=drawdesklx+pixnum*mapj;				// 瓦片个数 * 一个瓦片的像素 = 画板总长度drawdeskry=drawdeskly+pixnum*mapi;int left=0;								// 刷新绘图板的当前瓦片位置坐标int top=0;int pentake=0x8FFF0000;					// 选中的 ARGB 透明度与颜色int image[mapi * mapj];					// 分配像素内存int i, j;int background = 0x0000CCFF;			// 背景色:天依蓝,颜色按十六进制数int HotX=0;								// 鼠标热点位置int HotY=0;mesh = new int* [mapi];for(int i=0; i<mapi; i++)mesh[i]=new int[mapj];for(int i=0; i<mapi; i++){for(int j=0; j<mapj; j++){mesh[i][j]=0;						// 加入默认的背景色}}int h = 0;DrawColorCircle(800+640 / 4, 480 / 2, 140, h);		// 绘制色环setfillcolor(RGB(128, 126, 129));for (int i = 0; i < mapi ; i++){left = 0;for (int j = 0; j < mapj ; j++){int pennumber = mesh[i][j];					// 读取游戏大地图数组序号//https://codebus.cn/yangw/transparent-putimage
//透明色混合原理与透明色计算代码来源int sa = ((pennumber & 0xff000000) >> 24);int sr = ((pennumber & 0xff0000) >> 16);	// 源值已经乘过了透明系数int sg = ((pennumber & 0xff00) >> 8);		// 源值已经乘过了透明系数int sb =   pennumber & 0xff;				// 源值已经乘过了透明系数int dr = ((background& 0xff0000) >> 16);int dg = ((background & 0xff00) >> 8);int db =   background & 0xff;int dst = ((sr + dr * (255 - sa) / 255) << 16)		// sr = 0 dr =255, sa=0, dst->red = 255,即sa = 0 时,dr 占优。sr = 255, dr=0, sa=255, dst->red = 255, sa=255时,sr 占优| ((sg + dg * (255 - sa) / 255) << 8)|  (sb + db * (255 - sa) / 255);setfillcolor(BGR(dst));								// COLORREF 的颜色格式是 ABGR ,需要把 RGB 转换成 BGR 格式,然后打印出画板的颜色和保存的图片颜色一样,图片按ARGB 保存,但是画板按ABGR打印fillrectangle(drawdesklx+left, drawdeskly+top, drawdesklx+left + pixnum, drawdeskly+top + pixnum);left += pixnum;										// 往右移动,准备下一次绘制位置,}top += pixnum;											// 往下移动,准备下一次绘制位置}char icon[200]="图标预览";setbkmode(TRANSPARENT);													// 设置背景为透明settextcolor(BLACK);													// 设置字颜色为黑outtextxy(40,160,icon);													// 打印提示setfillcolor(GREEN);fillrectangle(10,100,300,140) ;											// 覆盖之前的文字提示char tips[200];sprintf(tips,"热点位置 HotX HotY = %d,%d",HotX,HotY);					// 格式化数字setbkmode(TRANSPARENT);													// 设置背景为透明settextcolor(BLACK);													// 设置字颜色为黑outtextxy(10,100,tips);													// 打印提示ExMessage m;while(1){while(peekmessage(&m,EX_KEY|EX_MOUSE,1)){switch (m.message){case WM_LBUTTONDOWN:if(m.x>drawdesklx&&m.y>drawdeskly&&m.x<drawdeskrx&&m.y<drawdeskry)										// 绘制{isdraw=1;drawmapi=-1;drawmapj=-1;}break;case WM_LBUTTONUP:isdraw=0;drawoldmapi=-1;drawoldmapj=-1;drawsmallflag=0;break;case WM_RBUTTONDOWN:if(m.x>drawdesklx&&m.y>drawdeskly&&m.x<drawdeskrx&&m.y<drawdeskry&&m.ctrl)										// 绘制{HotY=(m.y-drawdeskly)/pixnum;HotX=(m.x-drawdesklx)/pixnum;setfillcolor(GREEN);fillrectangle(10,100,300,140) ;											// 覆盖之前的文字提示char tips[200];sprintf(tips,"热点位置 HotX HotY = %d,%d",HotX,HotY);					// 格式化数字setbkmode(TRANSPARENT);													// 设置背景为透明settextcolor(BLACK);													// 设置字颜色为黑outtextxy(10,100,tips);													// 打印提示}else{pentake = getpixel(m.x,m.y);setfillcolor(pentake);fillrectangle(800,500,900,600);pentake=pentake|0xFF000000;											// 要颜色转换完毕前再补充alpha 通道,否则半透明pentake=BGR(pentake);												// 因为 getpixel 已经是 BGR了,但是在后面的上色还个BGR转换,所以还需要再转换一次BGR来抵消后面的BGR转换。// BGR转换是因为保存数据时是 RGB 保存,但是当绘制图像时,却是蓝色红色相反,所以绘制的时候要调整蓝色红色,保存的是按RGB来 setfillcolor(GREEN);fillrectangle(800,400,1140,440);char colortips[200];sprintf(colortips,"new alpha:%d,red:%d,green:%d,blue:%d",(pentake&0xFF000000)>>24,(pentake&0x00FF0000)>>16,(pentake&0x0000FF00)>>8,(pentake&0x000000FF));outtextxy(800,400,colortips);										// 打印颜色提示}break;case WM_KEYDOWN:switch (m.vkcode){case VK_F1:int width=mapj;int height=mapi;for (i = 0; i < height; ++i){for (j = 0; j < width; ++j){image[i * width + j]  = mesh[i][j];  										// 透明色 叠加 网格数据}																				// Alpha 透明 0x00, red: 00, green: 00, blue: 00  各 bit 位对应 ARGB}																					// 0x00000000是完全透明 0x5F000000 可以看出来不完全透明,可知透明度可调节generate_ico_file("testv8_透明度测试.cur", (char *)image, width, height, 1,HotX,HotY);printf("Save cur,文件名:testv8_透明度测试.cur\n");break;}}}if(isdraw){if(m.x>drawdesklx&&m.y>drawdeskly&&m.x<drawdeskrx&&m.y<drawdeskry){drawmapi=(m.y-drawdeskly)/pixnum;drawmapj=(m.x-drawdesklx)/pixnum;if(drawmapi!=drawoldmapi||drawmapj!=drawoldmapj)		// 检测是否是旧位置{mesh[drawmapi][drawmapj]=pentake;drawoldmapi=drawmapi;drawoldmapj=drawmapj;drawsmallflag=1;}}}if(drawsmallflag==1){top=0;left=0;for (int i = 0; i < mapi ; i++){left = 0;for (int j = 0; j < mapj ; j++){int pennumber = mesh[i][j];							// 读取游戏大地图数组序号
//https://codebus.cn/yangw/transparent-putimage
//透明色混合原理与透明色计算代码来源int sa = ((pennumber & 0xff000000) >> 24);int sr = ((pennumber & 0xff0000) >> 16);	// 源值已经乘过了透明系数int sg = ((pennumber & 0xff00) >> 8);		// 源值已经乘过了透明系数int sb =   pennumber & 0xff;				// 源值已经乘过了透明系数int dr = ((background& 0xff0000) >> 16);int dg = ((background & 0xff00) >> 8);int db =   background & 0xff;int dst = ((sr + dr * (255 - sa) / 255) << 16)			// sr = 0 dr =255, sa=0, dst->red = 255,即sa = 0 时,dr 占优。sr = 255, dr=0, sa=255, dst->red = 255, sa=255时,sr 占优| ((sg + dg * (255 - sa) / 255) << 8)|  (sb + db * (255 - sa) / 255);setfillcolor(BGR(dst));								// COLORREF 的颜色格式是 ABGR ,需要把 RGB 转换成 BGR 格式,然后打印出画板的颜色和保存的图片颜色一样,图片按ARGB 保存,但是画板按ABGR打印fillrectangle(drawdesklx+left, drawdeskly+top, drawdesklx+left + pixnum, drawdeskly+top + pixnum);left += pixnum;										// 往右移动,准备下一次绘制位置,}top += pixnum;											// 往下移动,准备下一次绘制位置}top=0;for (int i = 0; i < mapi ; i++){left = 0;for (int j = 0; j < mapj ; j++){int pennumber = mesh[i][j];							// 读取游戏大地图数组序号
//https://codebus.cn/yangw/transparent-putimage
//透明色混合原理与透明色计算代码来源int sa = ((pennumber & 0xff000000) >> 24);int sr = ((pennumber & 0xff0000) >> 16);	// 源值已经乘过了透明系数int sg = ((pennumber & 0xff00) >> 8);		// 源值已经乘过了透明系数int sb =   pennumber & 0xff;				// 源值已经乘过了透明系数int dr = ((background& 0xff0000) >> 16);int dg = ((background & 0xff00) >> 8);int db =   background & 0xff;int dst = ((sr + dr * (255 - sa) / 255) << 16)			// sr = 0 dr =255, sa=0, dst->red = 255,即sa = 0 时,dr 占优。sr = 255, dr=0, sa=255, dst->red = 255, sa=255时,sr 占优| ((sg + dg * (255 - sa) / 255) << 8)|  (sb + db * (255 - sa) / 255);// 绘制预览图putpixel(drawdesklx-64+left,drawdeskly-32+top,BGR(dst));						// COLORREF 的颜色格式是 ABGR ,需要把 RGB 转换成 BGR 格式,然后打印出画板的颜色和保存的图片颜色一样,图片按ARGB 保存,但是画板按ABGR打印left += 1;										// 往右移动,准备下一次绘制位置,}top += 1;											// 往下移动,准备下一次绘制位置}}Sleep(2);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/823391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【考研高数】学习笔记分享

派大星说数学&#xff08;导学部分&#xff09; 关于做题 测试 答疑阶段 直播 群内 高中基础知识导学 一、数与式 述了课程学习和因式分解、分式拆解等知识点。学生应了解课程内容&#xff0c;带着疑问听课&#xff0c;不要抄笔记&#xff0c;导学课和基础课都有测验&…

Zabbix监控Windows

1.在虚拟机中安装zabbix 安装系统一直托不进虚拟机中&#xff1b;因为没安装Tools组件 点击虚拟机&#xff0c;选择安装VMware Tools 2.配置zabbix

荣誉 | 人大金仓获评轨交行业“智慧运维优秀应用案例”

4月12日至13日&#xff0c;2024&#xff08;第八届&#xff09;中国城市轨道交通智慧运维大会在成都顺利举行。会上&#xff0c;人大金仓以其在轨交行业的卓越贡献和创新实践&#xff0c;获评“智慧运维优秀应用案例”。公司副总裁梁红凤出席大会并发表了题为“打造世界一流的数…

顺序表(增删减改)+通讯录项目(数据结构)+顺序表专用题型

什么是顺序表 顺序表和数组的区别 顺序表本质就是数组 结构体初阶进阶 系统化的学习-CSDN博客 简单解释一下&#xff0c;就像大家去吃饭&#xff0c;然后左边是苍蝇馆子&#xff0c;右边是修饰过的苍蝇馆子&#xff0c;但是那个好看的苍蝇馆子一看&#xff0c;这不行啊&a…

EcoVadis评估是什么?EcoVadis评估的步骤有哪些

EcoVadis评估是一种针对供应链中各个环节的环境和社会责任进行评估的工具。其评估范围广泛&#xff0c;涵盖了环境、劳工与人权、商业道德和可持续采购等多个领域。通过收集企业的公开信息、企业提供的数据和自我评估问卷等方式&#xff0c;EcoVadis能够为企业提供一个全面的可…

【智能排班系统】Quartz结合Cron-Utils自定义时间发送上班、休息提醒

文章目录 Quartz&#xff1a;强大的Java作业调度引擎Quartz概述核心概念与架构配置文件主配置&#xff08;配置主要调度器设置、事务&#xff09;线程池配置&#xff08;调整作业执行资源&#xff09;SimpleThreadPool特定属性自定义线程池 RAMJobStore配置&#xff08;在内存中…

域名网络、

http://www.localhost:8080/hello http://127.0.0.1:8080/hello 一般在本机的C:\Windows\System32\drivers\etc的host文件里都有 在这个hosts配置文件中有一个127.0.0.1和默认的用户名locahost&#xff0c;在tomcat启动后输入的地址就是localhost端口号&#xff0c;默认的…

【文献分享】PCCP:机器学习 + 分子动力学 + 第一性原理 + 热学性质 + 微观结构

分享一篇关于机器学习 分子动力学 第一性原理 热学性质&#xff08;密度、粘度、扩散系数&#xff09; 微观结构的文章。 感谢论文的原作者&#xff01; 关键词&#xff1a; 1. Machine learning, 2. Deep potential, 3. Molecular dynamics 4. Molten salt, 5. Thermo…

【系统分析师】系统安全分析与设计

文章目录 1、安全基础技术1.1 密码相关1.1.1对称加密1.1.2非对称加密1.1.3信息摘要1.1.4数字签名1.1.5数字信封 1.2 PKI公钥体系 2、信息系统安全2.1 保障层次2.2 网络安全2.2.1WIFI2.2.2 网络威胁与攻击2.2.3 安全保护等级 2.3计算机病毒与木马2.4安全防范体系 1、安全基础技术…

游戏生成式 AI:编织梦想,避开阴影

想象一下&#xff0c;一个沉浸式的游戏世界中玩家遇到的每个 NPC 都由 AI 驱动&#xff0c;他们能与玩家进行互动&#xff0c;从改变游戏体验。据 Inword 一项研究显示&#xff0c;绝大多数游戏玩家渴望这种互动&#xff0c;愿意投入更多的时间和金钱来玩这种由 AI 驱动的游戏。…

第十三章 使用深度和法线纹理

获取深度和法线纹理 背后的原理 深度纹理是一张渲染纹理,它里面存储的像素值不是颜色,而是一个高精度的深度值。深度值范围是[0, 1],非线性分布的。这些深度值来自于顶点变换后得到的归一化的设备坐标(NDC)。一个模型想要被绘制在屏幕上,需要把它的顶点从模型空间变换到齐…

嵌入式工程师如何摸鱼?

有老铁问我&#xff0c;做嵌入式开发要加班吗&#xff1f; 也不知道搞什么鬼&#xff0c;现在的年轻人对加班这么抵触。 我刚做开发那会&#xff0c;啥也不懂&#xff0c;每天基本都要加班到晚上7-9点不等&#xff0c;我并不抵触加班&#xff0c;因为早早回家&#xff0c;也没什…

时间同步服务项目练习

一.配置server主机要求如下&#xff1a; 1.server主机的主机名称为 ntp_server.example.com 2.server主机的IP为&#xff1a; 172.25.254.100 3.server主机的时间为1984-11-11 11&#xff1a;11&#xff1a;11 4.配置server主机的时间同步服务要求可以被所有人使用 二.设定cli…

【保姆级】2024年OnlyFans订阅指南

OnlyFans是一个独特的社交媒体平台&#xff0c;它为创作者和粉丝提供了一个互动交流的空间。通过这个平台&#xff0c;创作者可以分享他们的独家内容&#xff0c;而粉丝则可以通过订阅来支持和享受这些内容。如果你对OnlyFans感兴趣&#xff0c;并希望成为其中的一员&#xff0…

Delphi Xe 10.3 钉钉SDK开发——审批流接口(获取表单ProcessCode)

开发钉钉审批流时&#xff0c;需要用到钉钉表单的Processcode&#xff0c;有两种方法 &#xff1a; 一、手动获取&#xff1a; 管理员后台——审批——找到对应的表单&#xff1a;如图&#xff1a; ProcessCode后面就是了&#xff01; 二、接口获取&#xff1a;今天的重点&a…

机器学习周报第37周

目录 一、文献阅读&#xff1a;You Only Look Once: Unified, Real-Time Object Detection1.1 摘要1.2 背景1.3 论文模型1.4 网络设计1.5 YOLO的局限性1.6 实现代码 一、文献阅读&#xff1a;You Only Look Once: Unified, Real-Time Object Detection 1.1 摘要 YOLO是一种新…

JDBC入门

JDBC java database connectivity: 就是使用java语言操作关系型数据库的一套API

Pytest测试用例中的mark用法(包含代码示例与使用场景详解)

在软件开发中&#xff0c;测试是确保代码质量和功能稳定性的重要环节。Python作为一门流行的编程语言&#xff0c;拥有丰富的测试工具和框架&#xff0c;其中pytest是其中之一。pytest提供了丰富的功能来简化测试用例的编写&#xff0c;其中的mark功能允许我们对测试用例进行标…

LeetCode———100——相同的树

目录 ​编辑 1.题目 2.解答 1.题目 . - 力扣&#xff08;LeetCode&#xff09; 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&…

【数据挖掘】实验8:分类与预测建模

实验8&#xff1a;分类与预测建模 一&#xff1a;实验目的与要求 1&#xff1a;学习和掌握回归分析、决策树、人工神经网络、KNN算法、朴素贝叶斯分类等机器学习算法在R语言中的应用。 2&#xff1a;了解其他分类与预测算法函数。 3&#xff1a;学习和掌握分类与预测算法的评…