九月十九日(舔狗代码)

#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中进行抠图。

 如果有需要,也可以用代码中的透明贴图函数来实现抠图

 后续还要增加一些内容,不做展示

 

 
posted @ 2023-09-19 22:52  财神给你送元宝  阅读(21)  评论(0编辑  收藏  举报