gpt4 book ai didi

perl - 如何将 PDL 图像转换为 GdkPixbuf

转载 作者:行者123 更新时间:2023-12-05 05:23:00 24 4
gpt4 key购买 nike

我正在尝试在 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();

最佳答案

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

我无法回答你的第二个问题,我没有使用 Gtk3 的经验,抱歉。

关于perl - 如何将 PDL 图像转换为 GdkPixbuf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39046872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com