当前位置: 技术问答>linux和unix
关于用XImage显示图像的错误,请各位大哥帮帮忙!
来源: 互联网 发布时间:2015-05-22
本文导语: 我现在是想把一个320*240的RAW的图显示出来,现在XCreateImage返回值正确,但是XPutImage函数返回值为0。不知是什么地方错了。以下是我的代码。 XImage *m_ximage; Display *display; Colormap colormap; XColor xcol; XGCValues gcValues; GC g...
我现在是想把一个320*240的RAW的图显示出来,现在XCreateImage返回值正确,但是XPutImage函数返回值为0。不知是什么地方错了。以下是我的代码。
XImage *m_ximage;
Display *display;
Colormap colormap;
XColor xcol;
XGCValues gcValues;
GC gc;
XSetWindowAttributes arrt;
int screen;
int width,height;
int bpp;
int fd;
Visual *visual;
unsigned int imagedepth;
int hr;
fd=open("/mnt/k.raw",O_RDWR);
read(fd,ImgBuf,77596);
width=320;
height=240;
display= XOpenDisplay("0:0");
screen=DefaultScreen( display );
colormap=DefaultColormap( display, screen );
xcol.red= xcol.blue=0xffff;
xcol.green=0;
xcol.flags=DoRed | DoBlue | DoGreen;
XAllocColor(display,colormap,&xcol);
gc=XCreateGC( display,this,0,&gcValues);
XSetForeground( display, gc, xcol.pixel );
XSetBackground( display, gc, xcol.pixel );
XFlush( display );
visual=DefaultVisual( display,screen );
imagedepth=DefaultDepth( display,screen );
bpp=(imagedepth+7)/8;
m_ximage=XCreateImage( display, visual,imagedepth, ZPixmap, 0,
ImgBuf, width,height, 8, width * bpp );
if ( m_ximage!=NULL )
{
hr=XPutImage( display,this,gc,m_ximage,10,10,
0,0,width,height );//this是对话框
XFlush( display );
}
else
{
QMessageBox::information( this,"Error",
"Create XImage error.");
}
XImage *m_ximage;
Display *display;
Colormap colormap;
XColor xcol;
XGCValues gcValues;
GC gc;
XSetWindowAttributes arrt;
int screen;
int width,height;
int bpp;
int fd;
Visual *visual;
unsigned int imagedepth;
int hr;
fd=open("/mnt/k.raw",O_RDWR);
read(fd,ImgBuf,77596);
width=320;
height=240;
display= XOpenDisplay("0:0");
screen=DefaultScreen( display );
colormap=DefaultColormap( display, screen );
xcol.red= xcol.blue=0xffff;
xcol.green=0;
xcol.flags=DoRed | DoBlue | DoGreen;
XAllocColor(display,colormap,&xcol);
gc=XCreateGC( display,this,0,&gcValues);
XSetForeground( display, gc, xcol.pixel );
XSetBackground( display, gc, xcol.pixel );
XFlush( display );
visual=DefaultVisual( display,screen );
imagedepth=DefaultDepth( display,screen );
bpp=(imagedepth+7)/8;
m_ximage=XCreateImage( display, visual,imagedepth, ZPixmap, 0,
ImgBuf, width,height, 8, width * bpp );
if ( m_ximage!=NULL )
{
hr=XPutImage( display,this,gc,m_ximage,10,10,
0,0,width,height );//this是对话框
XFlush( display );
}
else
{
QMessageBox::information( this,"Error",
"Create XImage error.");
}
|
up
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。