<textareareadonly="readonly"name="code"class="c++">
#include <stdio.h>
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
void ShowPic(unsigned char *buf, int size, SDL_Surface *screen, int x, int y)
{
SDL_RWops *src;
SDL_Surface *image;
SDL_Rect dest;
src = SDL_RWFromMem(buf, size);
/* 将BMP文件加载到一个surface*/
image = IMG_Load_RW(src, 1);
if ( image == NULL )
{
fprintf(stderr, "无法加载 %s\n", SDL_GetError());
return;
}
/* Blit到屏幕surface。onto the screen surface.
这时不能锁住surface。
*/
dest.x = x;
dest.y = y;
dest.w = image->w;
dest.h = image->h;
SDL_BlitSurface(image, NULL, screen, &dest);
/* 刷新屏幕的变化部分 */
SDL_UpdateRects(screen, 1, &dest);
}
int main(int argc, char *argv[])
{
unsigned char *buf;
FILE *fp;
int size, i;
if (argc != 2)
{
fprintf(stderr, "Usage:%s file_name\n", argv[0]);
exit(1);
}
if (SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0)
{
fprintf(stderr, "无法初始化SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
SDL_Surface *screen;
screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
if (screen == NULL)
{
fprintf(stderr, "无法设置640x480的视频模式:%s\n", SDL_GetError());
exit(1);
}
fp = fopen(argv[1], "r");
if (fp == NULL)
{
perror("fopen");
exit(1);
}
fseek(fp, 0L, SEEK_END);
size = ftell(fp);
printf("file size:%d\n", size);
rewind(fp);
buf = malloc(size);
if (buf == NULL)
{
perror("malloc");
exit(1);
}
memset(buf, 0, size);
i = fread(buf, size, 1, fp);
if (i < 0)
{
perror("fread");
exit(1);
}
fclose(fp);
printf("read:%d\n", i);
#if 0
for (i = 0; i < 100; i++)
{
if (i % 10 == 0)
printf("\n");
printf("%02X ", buf[i]);
}
printf("\n");
#endif
ShowPic(buf, size, screen, 0, 0);
printf("please enter Enter to exit....");
getchar();
return 0;
}
分享到:
相关推荐
基于SDL2.0的YUV图像显示示例程序!涵盖多种YUV格式!
与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色...
新手入门,ffmpeg SDL显示视频,编译通过
SDL其使用用途很多,本文挡主要用于说明如何在linux中使用SDL显示图片,并详细介绍所涉及到的函数详细用法。
这是我自己用的SDL中文显示的例子,中文显示困扰了我好久,希望加快后来人的研发速度,所以把方法放在这里,供嵌入式游戏设计的朋友们使用。
利用ffmpeg和SDL显示视频
本段示例代码在vs2005中实现,用于演示SDL图片及文字的显示。
SDL DEMO(源码), 实现了SDL显示汉字,图片等
SDL_gfx 函数是支持旋转和缩放的SDL扩展库,本文件是SDL_GF函数的源代码
使用video4linux2编程接口,获得笔记本摄像头影像后,用SDL显示在X Window下。 关键点有二:其一,从video4linux2的编程接口笔者了解到其笔记本摄像头支持YUYV视频帧格式,显示在 SDL上需要将YUYV格式转换成SDL支持...
SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。现SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
mfc使用SDL显示图片,一个简单的例子。这里假设你已经配置好了SDL环境。使用的是VS2008.测试的时候将图片文件拷贝到生成目录
SDL官方中文帮助文档,帮助SDL的快速入门,html文档方便快捷浏览
在QT5中使用SDL2显示bmp图片,一个很简单的测试程序,SDL在QT中环境搭建可以参考这篇文章:http://blog.csdn.net/hjl240/article/details/48102897
因为Linux的普及以及不受$M的牵制,SDL在过去的几年中,成为了跨平台开发PC游戏的首选。即使是在Windows平台下,SDL有具有自身的优势。与MFC使用不成熟的C++外表伪封装的win32api以及一家独唱推崇的COM风格和.net相...
通过SDL1显示BMP,YUV的示例程序。 功能: 支持直接显示文件BMP 支持显示内存BMP 支持显示YUV 附: BMP缩放需要SDL_GFX扩展。 工程是VS2010的WIN32
GTK开发界面使用SDL显示图片,OpenGL绘制3D地球。地球使用GLut库实现。
在QT5使用SDL2显示bmp图片,详细说明可以参考整个文章:http://blog.csdn.net/hjl240/article/details/48102897
sdl开发库,视频渲染显示;方便易用,很小巧的一个开源库;