我有一个可滚动的画布,我想要的内容为png图像。
问题是我只得到画布的照片,在给定时间内缺少画布的不可见部分。
如何将整个可滚动画布变成png图像?
我目前的代码如下:
my $canvas_to_get_photo=$mw->Photo(-format=>'Window', -data=>oct($canvas_to_get->id));
$canvas_to_get_photo->write('somepath/image.png', -format=>'png');
答案 0 :(得分:1)
自从我做了大量Tk工作以来已经有一段时间了,所以这可能行不通。您是否尝试过查找滚动画布的非滚动子组件。
所以,可能是你想要的
my $canvas = $scrolled->Subwidget('widget');
$canvas = $scrolled unless $canvas;
my $canvas_id = $canvas->id;
my $photo = $mw->Photo(-format => 'Window', -data => oct $canvas_id );
$photo->write('somepath/image.png', -format => 'png' );
答案 1 :(得分:1)
没有本地方式可以做到; Tk只绘制到窗口,而不是基于图像的表面。因此,您可以选择: