easyx背景图片不显示


#include<stdio.h>
#include<conio.h>
#include <graphics.h>
int main()
{
    initgraph(550, 700);
    IMAGE background;
    loadimage(&background, "youxijiemian", 550, 700);
    putimage(0, 0, &background);
    _getch();
    closegraph();
    return 0;
}

代码如下  路径已经放到了同一路经,但图片就是显示不出来

【相关推荐】



  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7523878
  • 你也可以参考下这篇文章:用easyx图形库写出一个贪吃蛇
  • 除此之外, 这篇博客: Easyx入门中的 13.其他函数  部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 首先需要定义操作窗口类型:HWND 来定义窗口句柄,GetHWnd ( ) 获取句柄
    • 使用 SetWindowText ( 句柄,字符串(标题) ) 来修改窗口标题
    • 使用 MessageBox ( 句柄,消息框,标题,选项 ) 设置模态对话框

    最后附上我的练习效果图: 

     

     最后附上我的代码:

    #include <stdio.h>
    #include <graphics.h>//EasyX图形库函数
    #include <easyx.h>//都一样的,只不过是新版
    #include <mmsystem.h>//播放音乐所需的头文件,需要放在graphics下面
    #pragma comment(lib,"winmm.lib")//加载静态库
    void bgm()
    {
    	mciSendString("open ./一半.mp3 alias bgm", 0, 0, 0);//打开音乐,薛之谦的一半
    	mciSendString("play bgm", 0, 0, 0);//播放音乐
    }
    void change()
    {
    	HWND win = GetHWnd();//获取窗口句柄
    	SetWindowText(win, "c语言练习-EasyX");//修改窗口标题
    	MessageBox(win, "你爱我吗?", "快快回答",MB_YESNO);//设置模态对话框
    }
    
    int main()
    {
    	int x = 50, y = 50;//定义小球的初始位置
    
    	initgraph(1040, 600, SHOWCONSOLE);//设置图形边框
    	bgm();//播放音乐
    	change();//弹窗与标题修改
    	while (1)
    	{
    		BeginBatchDraw();//开始批量绘制,防止闪屏
    		setbkcolor(WHITE);//设置背景颜色
    		cleardevice();//覆盖之前背景颜色
    		setlinestyle(PS_SOLID, 2);//设置线条样式,实线
    		setlinecolor(RED);//设置线条颜色
    		setfillcolor(GREEN);//填充颜色
    		circle(100, 100, 50);
    		fillcircle(200, 100, 50);
    		solidcircle(300, 100, 50);
    
    		fillrectangle(400, 200, 600, 300);//设置一个有边框矩形(边框默认白色)
    		settextstyle(20, 0, "楷体");//设置字体样式
    		settextcolor(YELLOW);//设置字体颜色
    		setbkmode(TRANSPARENT);//设置字体背景颜色(透明)
    		char arr[] = "按钮";//定义一个字符串
    		int height = (100 - textheight(arr)) / 2;//计算空隙高度
    		int width = (200 - textwidth(arr)) / 2;//计算空隙宽度
    		outtextxy(400 + width, 200 + height, arr);//加上原先高宽,并输出字符串
    
    		ExMessage msg;//定义鼠标消息
    		if (peekmessage(&msg,EM_MOUSE))//判断与接收鼠标消息
    		{
    			if ( msg.lbutton && msg.x >= 400 && msg.x <= 600 && msg.y >= 200 && msg.y <= 300)//如果鼠标左键点击了矩形框
    			{
    				printf("我被按下了\n");
    			}
    		}
    
    		IMAGE img;//定义图像
    		loadimage(&img,"./11.jpeg",250,250);//加载图片,这是我自己的图片路径和名称
    		putimage(700, 100, &img);//输出图片
    
    		int v = 1;//定义速度
    		setfillcolor(BLUE);//设置小球填充颜色为蓝色
    		fillcircle(x, y, 10);//设置小球的位置(用变量表示)
    		FlushBatchDraw();//结束批量绘制,防止闪屏
    		if (GetAsyncKeyState(VK_UP))//上移
    			y -= v;
    		if (GetAsyncKeyState(VK_DOWN))//下移
    			y += v;
    		if (GetAsyncKeyState(VK_LEFT))//左移
    			x -= v;
    		if (GetAsyncKeyState(VK_RIGHT))//右移
    			x += v;
    	}
    		getchar();
    		closegraph();
    	
    		return 0;
    }

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

问题出现在loadimage(&background, "youxijiemian", 550, 700);
你应该改成loadimage(&IMAGE,(图片名称)+后缀,int width,int highth);
改成以下几种(看你是哪个类型文件){
loadimage(&background, "youxijiemian.jpeg", 550, 700);
loadimage(&background, "youxijiemian.jpg", 550, 700);
loadimage(&background, "youxijiemian.png", 550, 700);
}