вопрос знатокам Perl...
$image = GD::Image->new;
и вывести не в STDOUT (веб-сервер ничего там не перекодирует по ходу дела? а в файл - и посмотреть, чо оно там нахерачило.
Global symbol "$image" requires explicit package name at my_img.pl line 9 ($image = GD::Image->new(800, 300); ).
my $image = ...
есть $image = GD::Graph::lines->new ;
делаем $image->plot а потом хотим сделать $image->string(gdMediumBoldFont, 10, 45, "Hello, moto!", $black); свойственный для $image = GD::Image->new; но не для $image = GD::Graph::lines->new ;
Ошибка:: Can't locate object method "set" via package "GD::Image"
my $img = new GD::Image($image->png);
$img->string(...);
?
$image = GD::Graph::lines->new ;
...
$gdimage = $image->plot (...);
$gdimage->string(gdMediumBoldFont, 10, 45, "Hello, moto!", $black);
print "Content-type: image/png\n\n";
binmode STDOUT;
print $gdimage->png;
Иными словами GD::Graph::lines и GD::Image это совсем разные объекты.
всем пасиба
Оставить комментарий
NET_Stranger
Хочу с помощью GD на картинке сделать надпись "Hello, moto!". Вот код:#!/usr/bin/perl
use strict;
use GD;
use GD::Graph::lines;
no strict 'subs';
$image = GD::Graph::lines->new (800, 300);
#...............
#тут много кода по обработке $image...
#..............
#$image готов, теперь делаю на нем надпись:
my $white = $image->colorAllocate(255,255,255);
my $black = $image->colorAllocate(0,0,0);
$image->arc(50, 50, 95, 75, 0, 360, $black);
$image->fillToBorder(50,50,$black,$white);
$image->string(gdMediumBoldFont, 10, 45, "Hello, moto!", $black);
#Вывожу в броузер то, что получилось:
print "Content-type: image/png\n\n";
binmode STDOUT;
print $image->png;
ПРОБЛЕМА: Данный пример работал бы только в случае определения $image как:
open(PNG, "map/minimap.png") || die "$!";
my $image = newFromPng GD::Image(PNG) || die "$!";
close PNG;
Т.е. как я понимаю, нужно переопределить тип $image, вот только подскажите мне как?