在模块中,我需要一些Imager :: Search操作的图像数据(BMP).以下作品,
my $pattern = Imager::Search::Pattern->new(
driver => 'Imager::Search::Driver::BMP24',
file => 'test.bmp', #load the image from a file
);
Run Code Online (Sandbox Code Playgroud)
该图像(test.bmp)对我来说是恒定的,所以想直接在源代码作为其存储
my $image = ... the image data ... ;
Run Code Online (Sandbox Code Playgroud)
或在该__DATA__部分.
什么是存储二进制数据(如此test.bmp)的推荐方法__DATA__?(2.3kb的).
Dav*_*idO 10
您可能不希望处理在源文件中存储原始二进制数据的麻烦,但这并不意味着您仍然无法使用将该图像存储在该__DATA__段中的解决方案.您只需先以纯文本格式对其进行编码,例如Base64.
Mojolicious就是这种事情的一个例子.使用Mojolicious :: Lite,可以在节中嵌入模板和其他静态内容__DATA__.并且Base64编码的数据是一种可能性,如Mojolicious :: Guides :: Tutorial#Static Files中所述.
要点是要证明有时使用这种方法.如果要实现使用此方法的解决方案,则可以使用核心Perl模块MIME :: Base64.这是一个示例,其中一些任意普通旧文本以Base64格式存储,并检索以供使用.但是,由于Base64编码可以用于二进制数据,因此该示例可以适用于存储图像.
use MIME::Base64;
my $foo = do {
local $/ = undef;
decode_base64(<DATA>);
};
print "<<$foo>>\n";
__DATA__
SnVzdCBhbm90aGVyClBlcmwgaGFja2VyLA==
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |