- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 CutyCapt 在后台截取屏幕截图
我的应用程序是用 python 编写的,并通过运行子进程调用 CutyCapt。
在本地 (windows) 工作得很好,但是用于 windows 的 CutyCapt.exe 不需要 x 服务器。当我尝试在我的 ubuntu 机器上执行我的代码(通过 python 子进程)时,它咆哮着说我没有向 Xvfb 提供命令。但是,如果我自己在盒子上运行命令,它就可以正常工作。
适用于 box 的命令:
box$ xvfb-run --server-args="-screen 0, 1100x800x24" ./CutyCapt --url=http://www.google.com --out=temp.png
失败的 Python 代码:
def url_screengrab(url, **kwargs):
url, temp_path, filename, url_hash = get_temp_screengrab_info(url)
args = []
if sys.platform.startswith("linux"):
args.append('xvfb-run')
args.append('--server-args="-screen 0, 1100x800x24"')
args.append(settings.CUTYCAPT_EXE_PATH)
args.append('--url=%s' % (url))
args.append('--out=%s' % (temp_path,))
subprocess.Popen(args, shell=False)
return temp_path, filename, url_hash
返回错误:
xvfb-run: usage error: need a command to run
box$
我尝试过的事情:- 使用调用而不是 Popen-从屏幕参数中剥离引号-将屏幕参数分解为列表- 在执行子进程之前设置 os.environ["DISPLAY"]=":0"
我是否需要从 CutyCapt 命令中断 xvfb 进程?
如有任何帮助,我们将不胜感激。
最佳答案
在 Ubuntu 11.10 上,安装了 cutycapt 和 xvfb 软件包后,可以执行以下操作(至少对我而言...):
import shlex
import subprocess
def url_screengrab(url, **kwargs):
cmd = '''xvfb-run --server-args "-screen 0, 1100x800x24"
/usr/bin/cutycapt --url={u} --out=temp.png '''.format(u = url)
proc = subprocess.Popen(shlex.split(cmd))
proc.communicate()
url = 'http://www.google.com'
url_screengrab(url)
关于python - 将 Xvfb 和 CutyCapt 作为 Python 子进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158864/
我已经安装了包含 libWebKit 的 Qt44.*,以便按照项目主页 (http://cutycapt.sourceforge.net/) 中的说明编译和制作 Cutycapt 脚本/应用程序 脚
我正在尝试使用 cutycapt 捕获一些包含 Adobe Flash 元素的网站,但没有成功。 我的 PHP 脚本: $url=escapeshellarg($url); $filename=e
是否有 Cutycapt 的替代方案......可以使用 java 库访问...... 简而言之,Cutycapt 是一个跨平台的命令行实用程序,用于捕获 WebKit 将网页呈现为各种 vector
我在 Ubuntu 12.04 上有一个系统,它使用 xvfb、CutyCapt 和 Adobe Flash 来捕获带有嵌入式 Flash 的 HTML 页面的屏幕截图。所有包都是 Ubuntu
我正在尝试在我的 Ubuntu 10.4 服务器上设置 CutyCapt。 我在 SSH 中使用以下命令生成缩略图: xvfb-run --server-args="-screen 1, 1280x1
我尝试在 Linux 中使用 CutyCapt 从 Java 截取屏幕截图。但是出于某种原因,当我从 Java 运行命令时,它不会等待 CutyCapt 完成截屏,而是立即返回并且永远不会截屏。 此命
我一直在使用 CutyCapt 截取几个网页的屏幕截图,并取得了巨大成功。我现在的挑战是在代表用户点击位置的屏幕截图上绘制几个点。 CutyCapt 在进行屏幕截图之前会经历一个将网页大小调整为滚动宽
我正在寻找一种解决方案来生成网站列表屏幕截图的缩略图,并将其保存到磁盘。 我发现以下命令可以做到这一点。我在 ubuntu 中得到了一个有效的 shell 脚本,它可以很好地生成图像。 (CutyCa
他们显示的唯一字符是英文字符。 打印页面的布局是应该的,但唯一错误的是除英语(罗马)以外的任何脚本中的字符被替换为框。 我已经安装了 xvfb 和字体,但它仍然给我下面的错误 FreeFontPath
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve th
我在我的 CentOS 上使用 CutyCapt。它通过终端可以正常工作,但不能通过 php exec 函数工作。我已经在终端中通过命令启动了 xvfb: Xvfb :99 -screen 0 102
我在让 CutyCapt 使用 SSL URL 时遇到问题,我有最新版本的 CutyCapt (CutyCapt.cpp 10 2013-07-14 21:57:37Z),它可以工作完美适用于所有非
我正在使用 cutycapt 来捕获网站并生成缩略图。 (http://cutycapt.sourceforge.net/)这非常好,但是在使用 SSL 的网站上没有网站的显示,生成的缩略图只是白色的
我正在尝试使用 CutyCapt 在后台截取屏幕截图 我的应用程序是用 python 编写的,并通过运行子进程调用 CutyCapt。 在本地 (windows) 工作得很好,但是用于 windows
成功安装和编译所有内容后,我得到了这个可爱的输出,有人有想法吗? (这是一个没有 x 服务器的 centos 5.7,所以我使用臭名昭著的 xvfb-run 来模拟它) ./xvfb-run ./Cu
我是一名优秀的程序员,十分优秀!