SHARE
TWEET

Display latest Reuters Picture in ASCII

a guest Nov 23rd, 2012 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #! /usr/bin/perl -w                                                                                                                                                                                
  2. use strict;
  3. use warnings;
  4. use WebService::ReutersConnect qw/:demo/;
  5. use Log::Log4perl qw/:easy/;
  6. use Text::AAlib;
  7. use Imager;
  8. Log::Log4perl->easy_init($WARN);
  9.  
  10. my $reuters = WebService::ReutersConnect->new({ username => REUTERS_DEMOUSER,
  11.                                                 password => REUTERS_DEMOPASSWORD
  12.                                               });
  13. my ( $item )  = $reuters->fetch_search({ limit => 1, media_types => [ 'P' ], sort => 'date' });
  14.  
  15. ## Load preview image                                                                                                                                                                              
  16. my $res = $reuters->user_agent->get($item->preview_url());
  17. unless( $res->is_success() ){
  18.   die $res->status_line();
  19. }
  20.  
  21. ## Build and scale image                                                                                                                                                                          
  22. my $bin_image = $res->content();
  23. my $img = Imager->new( data => $bin_image , type => 'jpeg' ) || die Imager->errstr();
  24. $img = $img->convert( preset => 'grey' );
  25. $img = $img->scaleX(scalefactor => 2);
  26. $img = $img->scale(scalefactor => 0.5);
  27.  
  28.  
  29. ## Build ASCII Version                                                                                                                                                                            
  30. my ($width, $height) = ($img->getwidth, $img->getheight);
  31. my $aa = Text::AAlib->new( width  => $width, height => $height );
  32. $aa->put_image(image => $img);
  33.  
  34. ## Print ASCII Image                                                                                                                                                                              
  35. print $aa->render( dither => 0 ,
  36.                    gamma => 1.83,
  37.                    bright => 50,
  38.                    contrast => 60,
  39.                    color => 0
  40.                  );
  41.  
  42. ## And some info                                                                                                                                                                                  
  43. print "\n    ".$item->date_created().' : '.$item->headline()." \n";
  44. print "\n    ".$item->preview_url()."\n";
RAW Paste Data
Challenge yourself this year...
Learn something new in 2017
Top