九月十九日(舔狗代码)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | #include<iostream> #include<easyx.h> #include<ctime> #include <windows.h> #pragma comment(lib ,"winmm.lib") #include<mmsystem.h> using namespace std; void drawImg_s( int x, int y, IMAGE* img); void background(); void back1(); void back2(); void music(); //创建窗口 void background() { //创建窗口 initgraph(600,900); cleardevice(); } //城堡 void back1() { //保存图片 IMAGE back1; //加载图片 loadimage(&back1, _T( "back1.png" ), 600,900); //绘制图片 putimage(0, 0, &back1); } //生日快乐 void back2() { //保存图片 IMAGE back2; //加载图片 loadimage(&back2, _T( "back2.png" ),438,176); //绘制图片 drawImg_s(95, 90, &back2); } //透明贴图函数 void drawImg_s( int x, int y, IMAGE* img) { DWORD * pwin = GetImageBuffer(); //获取窗口缓冲区指针 DWORD * pimg = GetImageBuffer(img); //获取图片缓冲区指针 int win_w = getwidth(); int win_h = getheight(); int img_w = img->getwidth(); int img_h = img->getheight(); //判断x,y坐标是否超出了窗口范围 int real_w = (x + img_w > win_w) ? win_w - x : img_w; //超出右边界 int real_h = (y + img_h > win_h) ? win_h - y : img_h; //超出下边界 if (x < 0) //超出左边界处理 { pimg += -x; //让指针向后偏移 real_w -= -x; x = 0; } if (y < 0) //超出上边界处理 { pimg += (img_w * -y); //让指针向后偏移 real_h -= -y; y = 0; } pwin += (win_w * y + x); for ( int iy = 0; iy < real_h; iy++) { for ( int ix = 0; ix < real_w; ix++) { UCHAR alpha = pimg[ix] >> 24; if (alpha > 200) //0表示完全透明 { pwin[ix] = pimg[ix]; } } //换到下一行 pwin += win_w; pimg += img_w; } } //播放声音函数 void music() { mciSendString( "open 生日快乐.mp3" , NULL, 0, NULL); mciSendString( "play 生日快乐.mp3 repeat" ,NULL, 0, NULL); } //死循环 防止闪退 void whiles() { while (1) { } } int main() { background(); back1(); back2(); music(); whiles(); } |
浅浅学了一下C++的easyx图形库
做了一个生日快乐的祝福
歌曲放不了,可以自己选。这是我挑选的两张图片。文字图片可以先在PS中进行抠图。
如果有需要,也可以用代码中的透明贴图函数来实现抠图
后续还要增加一些内容,不做展示
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix