Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - el-vis

Страницы: [1]
1
Perl / GD и SetPixel
« : 17 Октября 2006, 18:33:30 »
Всем привет.

 Возникло желание сделать себе captcha на сайт но столкнулся с тем что скрипт попиксельно не хочет копировать из одного объекта в другой.
Точнее копирует только маленький кусочек, в данном случае слева.

Может быть переполняется какой-то кэш?

Вот пример кода..

#!/usr/bin/perl -w

use GD;

    print "Content-type: text/html\\n\\n";
    $imx = 120; $imy = 32;
    $im = new GD::Image($imx,$imy);
    $im2 = new GD::Image($imx,$imy);

   $black = $im->colorAllocate(0,0,0);
   $white = $im->colorAllocate(255,255,255);
   
   $im->fill(10,10,$black);
   $im->string(gdSmallFont,2,10,"simple test", $white);

   
   for($x=0;$x<$imx;$x++) {
      for($y=0;$y<$imy;$y++) {

       $im2->setPixel($x,$y,$im2->colorAllocate($im->rgb($im->getPixel($x,$y))));

      }
   }

    binmode STDOUT;
    print $im2->png;

2
Perl / Странности со SpreadSheet::WriteExcel
« : 30 Августа 2005, 14:11:38 »
Всем привет, столкнулся с проблемой, решаю второй день :)
 Буду очень благодарен, если подскажете хотя бы куда копать.
 
   У меня на сайте стоит формирование xls прайса из таблицы mysql с помощью SpreadSheet::WriteExcel. Со вчерашнего дня скрипт стал присылать файлы, которые не хотят открываться.

Опытным путем установил что если размер меньше 9 килобайт то все окей, если больше то идет какое-то переполнение и файл вроде как перезаписывается заново, в итоге больше 9 кб. не приходит.


Копаю в сторону параметров для stdout но пока ничего не нашел.

  Очень надеюсь на дельный совет :)


  Вот мой код:

#!/usr/bin/perl

use DBI;
use Spreadsheet::WriteExcel;
use Unicode::Map();
my $filename ="ost4.xls";
print "Content-type: application/vnd.ms-excel\\n";
print "Content-Disposition: attachment; filename=$filename\\n";
print "\\n";

&gen_price;

sub gen_price {


my $dbh = DBI->connect(\'DBI:mysql:**,**,**)  or die ("Unable to connect");

  my $i = 0;
   my $map = new Unicode::Map("WINDOWS-1251");

   my $workbook = Spreadsheet::WriteExcel->new("-");
   my $worksheet  = $workbook->addworksheet("xls");

   $worksheet->set_column(\'A:A\', 15);
   $worksheet->set_column(\'B:B\', 40);
   $worksheet->set_column(\'C:C\', 10);

   my $sql = "select id, name, price from xls";
   my $res = $dbh->prepare($sql) or die("Unable to prepare sql");
   my $rc = $res->execute();

  while(my ($id, $name, $price) = $res->fetchrow_array())  {

   $worksheet->write_unicode($i,0,$map->to_unicode($id));
   $worksheet->write_unicode($i,1,$map->to_unicode($name));
   $worksheet->write_unicode($i,2,$map->to_unicode($price));

  }
$dbh->disconnect();
$res->finish();
$workbook->close();
 }

Страницы: [1]