Perl Imager 图片添加倾斜文字水印

There's more than one way to do it!
https://metacpan.org http://perlmonks.org
头像
523066680
Administrator
Administrator
帖子: 347
注册时间: 2016年07月19日 12:14
拥有现金: 锁定
储蓄: 锁定
Has thanked: 31 times
Been thanked: 31 times
联系:

Perl Imager 图片添加倾斜文字水印

帖子 #1 523066680 » 2018年04月23日 14:48

result.jpg


Code: [全选] [展开/收缩] [Download] (watermask.pl)
  1. =info
  2.     Auth: vicyang/523066680
  3.     Date: 2018-04
  4. =cut
  5.  
  6. use Imager;
  7. use Imager::Matrix2d;
  8. use Data::Dumper;
  9. use Time::Local;
  10. use Encode;
  11. STDOUT->autoflush(1);
  12.  
  13. my $file = "src.jpg";
  14. my $img = Imager->new();
  15. $img->read(file=>$file) or die "Cannot load $image_source: ", $image->errstr;
  16.  
  17. my ($width, $height) = ( $img->getwidth(), $img->getheight() );
  18. my $fontsize = int($height/40);
  19. my $skip = $fontsize * 5;
  20.  
  21. print "$width $height\n";
  22.  
  23. $blue = Imager::Color->new(0xB0, 0xB0, 0xB0, 0x60);
  24. $font = Imager::Font->new(file  => 'C:/windows/fonts/msyh.ttf',
  25.                           color => $blue,
  26.                           size  => $fontsize );
  27.  
  28. my $matrix = Imager::Matrix2d->rotate( degrees => 45 );
  29. $font->transform(matrix => $matrix);
  30.  
  31. my @str;
  32. my $date = time_format( time() );
  33. push @str, "Perl专栏        "x50;
  34. push @str, "$date        "x50;
  35.  
  36. for my $y ( 1 .. 25 )
  37. {
  38.     $img->string(
  39.                font  => $font,
  40.                text  => decode('utf8', $str[ $y % 2 ]  ),
  41.                x     => 0,
  42.                y     => $y * $skip,
  43.                color => $blue
  44.             );
  45. }
  46.  
  47. $img->write( file => "result.jpg") or die $img->errstr;
  48.  
  49. sub time_format
  50. {
  51.     my ($sec, $min, $hour, $day, $mon, $year) = localtime( shift );
  52.     $mon += 1;
  53.     $year += 1900;
  54.     return sprintf "%d-%02d-%02d %02d:%02d", $year,$mon,$day,$hour,$min;
  55. }


原图:
src.jpg

头像
rubyish
初来炸道
初来炸道
帖子: 6
注册时间: 2018年04月23日 09:58
拥有现金: 锁定
Has thanked: 2 times
Been thanked: 2 times
联系:

Re: Perl Imager 图片添加倾斜文字水印、平铺文字水印

帖子 #2 rubyish » 2018年04月23日 15:57

youyisi
$_

头像
523066680
Administrator
Administrator
帖子: 347
注册时间: 2016年07月19日 12:14
拥有现金: 锁定
储蓄: 锁定
Has thanked: 31 times
Been thanked: 31 times
联系:

Re: Perl Imager 图片添加倾斜文字水印、平铺文字水印

帖子 #3 523066680 » 2018年04月23日 17:08

rubyish 写了:youyisi


:jiong2
Rubyish来了


回到 “Perl”

在线用户

用户浏览此论坛: 没有注册用户 和 1 访客