[Perl]画像用data URL schemeを作る

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use strict;
use warnings;
use IO::File;
use MIME::Base64;
 
# 対象ファイル
my $file = $ARGV[0];
 
# 拡張子から画像のMIMEタイプを取得
my $mime = $1 if $file =~ /\.(gif|jpe?g|png)$/;
$mime = 'jpeg' if $mime eq 'jpg';
 
# $dataに画像ファイルの中身を取得
IO::File->new($file, 'r')->read(my $data, (stat($file))[7]);
 
# BASE64エンコードして改行を除去
my $base64 = encode_base64($data);
$base64 =~ s|\n||g;
 
# data URL scheme(RFC2397)を表示
print "data:image/$mime;base64,$base64";

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>