QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5098|回复: 27

关于屏幕截取技术?

[复制链接]
发表于 2004-12-20 17:43:39 | 显示全部楼层 |阅读模式
我所要开发的项目中需要用到屏幕截取技术(截取整个显示屏幕),我知道如何在Windows下编程,却对Linux平台下此类技术一无所知。那位大侠能够提供一点点思路或相关链接,不胜感激。
发表于 2004-12-21 15:17:10 | 显示全部楼层
X window下的?
先用RootWindow()宏得到桌面的窗口句柄,然后用XGetImage()得到窗口的图像。
回复

使用道具 举报

发表于 2004-12-22 04:22:10 | 显示全部楼层
写了个简单例子
[code:1]
#include <X11/Xlib.h>
#include <X11/xpm.h>
#include <X11/Xutil.h>

main()
{
    Window desktop;
    Display *dsp;
    XImage *img;
    int w,h;

    dsp=XOpenDisplay(NULL);
    if(!dsp)
    {
        printf("XOpenDisplay error\n");
        return;
    }
    desktop=RootWindow(dsp,0);
    if(!desktop)
    {
        printf("cannot get root window\n");
        return;
    }
    w=DisplayWidth(dsp,0);
    h=DisplayHeight(dsp,0);
    img=XGetImage(dsp,desktop,0,0,w,h,~0,ZPixmap);
    XpmWriteFileFromImage(dsp,"./screenshot.xpm",img,NULL,NULL);
    XDestroyImage(img);
    XCloseDisplay(dsp);
}

[/code:1]
回复

使用道具 举报

发表于 2004-12-23 14:57:08 | 显示全部楼层
带OpenGL的可以截取么?
回复

使用道具 举报

发表于 2004-12-23 18:01:28 | 显示全部楼层
没试过
回复

使用道具 举报

发表于 2004-12-25 20:53:10 | 显示全部楼层
mozilla, 能否留个联系方式,以后有些x-windows下的技术问题想向你请教。
回复

使用道具 举报

发表于 2004-12-25 20:57:06 | 显示全部楼层
mozilla, 我是一个linux下的开发人员,我们公司目前使用Motif开发,我想请教你一个问题:能否使用X/Motif开发出动态语言切换的程序界面,比如FlashGet的语言选择项一样的功能啊?希望不吝赐教
回复

使用道具 举报

发表于 2004-12-25 20:59:32 | 显示全部楼层
mozilla, 我的电子邮箱是:[email protected],QQ:24835871,MSN:[email protected]
回复

使用道具 举报

发表于 2004-12-26 12:41:46 | 显示全部楼层
应该可以吧,但我没做过 :-(
msn:[email protected]
回复

使用道具 举报

发表于 2004-12-27 14:43:47 | 显示全部楼层
在qt怎么做呀??请教mozilla大哥哥
回复

使用道具 举报

发表于 2004-12-27 15:37:52 | 显示全部楼层
晕,qt的我更不会,我先试试gtk的吧,看看是什么原理。
回复

使用道具 举报

发表于 2004-12-27 22:53:57 | 显示全部楼层
请问利用curses.h可以 获取 整个显示屏幕的信息么?  怎样做?
回复

使用道具 举报

发表于 2004-12-27 23:16:07 | 显示全部楼层
[quote:578f80be9c="afat"]请问利用curses.h可以 获取 整个显示屏幕的信息么?  怎样做?[/quote]
你是指控制台下的截屏么?ncurses有没有获取全屏图形方法我不知道,但如果在framebuffer模式下,可以用fb的接口获得屏幕图像,你可以参考《linux程序设计权威指南》的260页。
回复

使用道具 举报

发表于 2004-12-27 23:17:05 | 显示全部楼层
google
motif  国际化 编程
也许能找到
回复

使用道具 举报

发表于 2004-12-28 13:09:17 | 显示全部楼层
[quote:af9cd0f223="mozilla"][quote:af9cd0f223="afat"]请问利用curses.h可以 获取 整个显示屏幕的信息么?  怎样做?[/quote]
你是指控制台下的截屏么?ncurses有没有获取全屏图形方法我不知道,但如果在framebuffer模式下,可以用fb的接口获得屏幕图像,你可以参考《linux程序设计权威指南》的260页。[/quote]

ncurses里面的函数好像都是对控制台的屏幕进行操作,我是想在后台运行服务器程序截取整个物理屏幕的信息(无论是屏幕显示的是xwindow桌面还是还是别的终端,取得的信息都是当前屏幕显示的信息),之后将信息广播到局域网,客户端通过控制台取得此信息再显示。就像一个广播授课系统。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 17:29 , Processed in 0.063105 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表