gpt4 book ai didi

perl - 在 __DATA__ 句柄中存储二进制数据

转载 作者:行者123 更新时间:2023-12-04 22:11:38 24 4
gpt4 key购买 nike

在一个模块中,我需要一些 Imager::Search 的图像数据 (BMP)手术。以下作品,

my $pattern = Imager::Search::Pattern->new(
driver => 'Imager::Search::Driver::BMP24',
file => 'test.bmp', #load the image from a file
);

图片 ( test.bmp ) 对我来说是常量,所以想直接将它存储在源代码中
my $image = ... the image data ... ;

或在 __DATA__部分。

test.bmp 中存储二进制数据(例如 __DATA__ )的推荐方法是什么? ? (2.3kb)。

最佳答案

您可能不想处理将原始二进制数据存储在源文件中的麻烦,但这并不意味着您仍然不能使用将图像存储在 __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==

关于perl - 在 __DATA__ 句柄中存储二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28954152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com