2

我正在尝试在 Gtk3 应用程序中显示由 PDL(使用 PLplot)生成的图形。当我尝试以下代码时,我看到两个问题:

  1. $pdlImg 不是 GdkPixbuf 所以 new_from_pixbuf() 不起作用。
  2. $pdlImg 似乎是空的,因为错误消息将 10x10x3 数组打印为字符串并且它们都是零。

代码:

#!/usr/bin/perl -w

use strict;
use PDL;
use PDL::Graphics::PLplot;
use Gtk3 -init;

my $pdlImg = zeroes(byte, 10, 10, 3);
my $pl = PDL::Graphics::PLplot->new(DEV => 'mem', MEM => $pdlImg);
my $x = sequence(10);
my $y = $x**2;
$pl->xyplot($x, $y);
$pl->close;

my $win = Gtk3::Window->new;
my $img = Gtk3::Image->new_from_pixbuf($pdlImg);
$win->add($img);
$win->show_all;
Gtk3::main();
4

1 回答 1

1

为了回答您的第一个问题,您让 PLplot 将绘图放入一个 10 像素宽和 10 像素高的 piddle 中。我不确定在这种情况下您是否只是要获得正常图的一个角,或者您是否要将整个图采样到那些 10x10 像素中。$pdlImg但无论哪种情况,完全为零也就不足为奇了。尝试传入更大尺寸的 piddle(也许1000, 1000, 3),或者甚至MEM => $pdlImg=null在创建 PLplot 绘图对象时使用。

我对你的第二个问题无能为力,我对 Gtk3 没有经验,抱歉。

于 2016-08-20T14:03:59.803 回答