我有时会为艺术家制作演示 CD 作为维护他们网站的一种副业。在制作其中一张演示光盘时,我开始怀疑艺术家是否有可能直接在 CD 的标签面上作画,而油漆不会损坏 CD 驱动器。
我内心的黑客想尝试这个,但我想先了解一下,以免在此过程中损坏我的 CD 驱动器。我不太了解旋转 CD 的物理原理,也不了解塑料的化学性质,但我敢打赌这里有人知道。
在以主观方式结束之前,我不是在这里寻求美学建议或意见。为此,我有一个充满艺术家的工作室。我想知道这在物理/化学上是否可行,以及适用于哪些类型的油漆。
我使用了可打印的不干胶标签,我使用了带有特殊白色表面的 CD,您可以在上面打印。两者都被宣传为对 CD 驱动器是安全的。我认为只要不吃塑料、不以 10k rpm 的速度旋转时剥落、起火或做其他坏事,一层薄薄的油漆就可以工作。
我使用一个程序来制作一个大图像,我必须滚动才能查看。该程序无法保存图像,我也无法访问源来修改它。我必须从程序中获取图像的唯一方法是通过屏幕截图。我的目标是保存完整尺寸的图像而不必拼凑单个屏幕截图。
我正在使用此脚本尝试截取屏幕截图:
#!/bin/bash
window=$(wmctrl -l | grep "Program$" | awk '{print $1}')
wmctrl -v -i -r $window -e '0,0,0,6030,5828'
wmctrl -i -a $window
import -window $window ~/Desktop/screenshot.png
Run Code Online (Sandbox Code Playgroud)
这使用 wmctrl 来获取名为“Program”的窗口的窗口 ID($window)。然后它尝试将窗口大小调整为所需的尺寸。它使用 imagemagick(导入)在用户桌面上保存一个 screenshot.png。除了调整大小步骤之外,所有这些都有效。
我可以使用 wmctrl -r -e 调整窗口大小,但是大于屏幕大小的大小不起作用。
我正在使用 Ubuntu 10.04 和 Gnome 桌面。我运行了两台显示器,但我试过其中一台被禁用。
有没有办法调整比我的屏幕大的窗口大小以获得巨大的屏幕截图?
第二部分:
感谢 sdaau 的回答,我尝试使用 xrandr 设置屏幕平移,以便拥有比显示器更大的桌面。
xrandr --output LVDS --panning 2600x2500
Run Code Online (Sandbox Code Playgroud)
此命令使笔记本电脑屏幕在 2600x2500 大小的桌面上平移,即使它一次只能显示 1440x900。要关闭平移,我可以使用类似的命令来设置平移部分的总大小和零。这让我恢复了原来的笔记本电脑显示行为。
xrandr --fb 1440x900 --output LVDS --panning 0x0
Run Code Online (Sandbox Code Playgroud)
这一切都是用 xrandr 完成的,不需要任何 Xorg.conf 更改(我的 Ubuntu 系统甚至没有 Xorg.conf)。
我的视频卡似乎只允许大约 650 万像素,即使最大尺寸是 8192x8192。该最大值似乎是任一维度的最大值,但可以绘制的像素数是有限制的,即宽度乘以高度。
调整屏幕大小后,我再次尝试了我的脚本并获得了屏幕截图。然而,屏幕截图完全混乱。我不确定它是否无法截取屏幕外窗口的屏幕截图,或者是否无法处理窗口的大尺寸。使用平移显示,窗口应该认为它是可见的,而窗口管理器应该认为它在屏幕上。所以在某个地方有一个像素缓冲区,里面有这些像素,所以应该有一种方法来获取屏幕截图。 …