c按图片跳转到另一个图片代码
时间: 2023-10-04 11:10:38 浏览: 83
要实现按图片跳转到另一个图片的功能,你可以使用C语言结合图形库来实现。以下是一个示例代码,使用了SDL图形库来加载和显示图片,点击图片后跳转到另一个图片:
```c
#include <SDL2/SDL.h>
#define SCREEN_WIDTH 640
#define SCREEN_HEIGHT 480
SDL_Window* window = NULL;
SDL_Renderer* renderer = NULL;
SDL_Texture* texture = NULL;
int currentImage = 1;
void renderImage(const char* imagePath)
{
SDL_Surface* imageSurface = SDL_LoadBMP(imagePath);
if (imageSurface == NULL)
{
printf("Failed to load image: %s\n", SDL_GetError());
return;
}
texture = SDL_CreateTextureFromSurface(renderer, imageSurface);
SDL_FreeSurface(imageSurface);
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, texture, NULL, NULL);
SDL_RenderPresent(renderer);
}
void handleEvent(SDL_Event* event)
{
if (event->type == SDL_QUIT)
{
SDL_Quit();
exit(0);
}
else if (event->type == SDL_MOUSEBUTTONDOWN)
{
currentImage = (currentImage == 1) ? 2 : 1;
char imagePath[20];
sprintf(imagePath, "image%d.bmp", currentImage);
renderImage(imagePath);
}
}
int main(int argc, char* argv[])
{
SDL_Init(SDL_INIT_VIDEO);
window = SDL_CreateWindow("Image Viewer",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
renderer = SDL_CreateRenderer(window, -1, 0);
char imagePath[20];
sprintf(imagePath, "image%d.bmp", currentImage);
renderImage(imagePath);
SDL_Event event;
while (SDL_WaitEvent(&event))
{
handleEvent(&event);
}
SDL_DestroyTexture(texture);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
```
在上面的代码中,我们使用了SDL图形库来创建窗口、渲染器和纹理,并加载和显示图片。我们定义了一个`currentImage`变量来表示当前显示的图片编号。
在`renderImage`函数中,我们根据传入的图片路径加载图片,并将其渲染到窗口上。在`handleEvent`函数中,我们处理SDL事件,当鼠标按下时,切换到另一个图片,并重新渲染窗口。
请确保将代码中的`image1.bmp`和`image2.bmp`替换为你自己的图片路径。同时,你需要在项目中添加SDL图形库的链接。
请注意,SDL图形库是一个跨平台的图形库,可以在多个操作系统上运行。你需要安装SDL开发库,并将其头文件和库文件包含在你的项目中。