2010-12-28 9 views
2

Ich verwende GD :: Barcode, um natürlich Barcodes zu erzeugen, habe aber keine Möglichkeit gefunden, die Bildbreite einzustellen. Wie mache ich das? Hier ist das, was ich in meiner (Mojolicious) Anwendung tue:So stellen Sie die Bildgröße mit GD :: Barcode ein

#action that generates an image/png barcode which is embedded in the html 
    use GD::Barcode::EAN8; 
    use Time::Seconds 
    sub barcode { 
     my ($c) = @_; 
     my $barcode_id = $c->stash('barcode_id'); 
     $c->app->log->debug('Generating barcode:' . $barcode_id); 
     my $img_data = GD::Barcode::EAN8->new($barcode_id)->plot->png; 

     $c->res->headers->content_type('image/png'); 
     $c->res->headers->header(
      'Cache-Control' => 'max-age=' . ONE_MONTH . ', must-revalidate, private'); 
     $c->render_data($img_data); 

    } 

Dank.

+0

Hinweis: aber das ist nicht wath Ich möchte Vor allem, weil Chrome die zu Antialiasing neigt. ‚Gezoomt‘ Bilder. –

+0

Können Sie die Lösung im Abschnitt Antworten posten, damit wir sie aus der Unbeantworteten Liste entfernen können? Danke! –

+0

erledigt, Bill the Lizard –

Antwort

0

Gelöst !!!

Ich muß nur erkennen, dass

GD::Barcode::EAN8->new($barcode_id)->plot; 

eine GD zurück :: Bild-Instanz.

Dank Sherzod B. Ruzmetov, der Image :: Resize schrieb.

und hier ist die neue Lösung:


use Time::Seconds 
#... 
#generate an image/png barcode which is embedded in the html 
require Image::Resize ; 
GD::Image->trueColor(0);#turn it off since Image::Resize turned it on 
require GD::Barcode::EAN8; 

sub barcode { 
    my ($c) = @_; 
    my $barcode_id = $c->stash('barcode_id'); 
    $c->app->log->debug('Generating barcode:' . $barcode_id); 
    my $img = GD::Barcode::EAN8->new($barcode_id)->plot(); 
    my $img_data = Image::Resize->new($img)->resize(100, 80,1)->png; 
    $c->res->headers->content_type('image/png'); 
    $c->res->headers->header(
     'Cache-Control' => 'max-age=' . ONE_MONTH . ', must-revalidate, private'); 
    $c->render_data($img_data); 

} 

Hope this jemand anderes hilft.

Verwandte Themen