gpt4 book ai didi

linux - 从 SMIL 文件中提取 jpeg

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:20 24 4
gpt4 key购买 nike

我需要我的 perl 脚本从 SMIL 文件中提取 jpeg。我看到在 linux 中执行此操作的唯一方法是使用以下命令。

xxd -c1 -p wapenc\?T\=mavodi-6-13b-1f-4-7c-4806803 | tr "\n" " " | sed -n -e 's/.*\(ff d8 ff .*\)/\1/p' | xxd -r -p > image.jpeg

将它包装在 system() 调用中是行不通的。将这样一系列命令合并到 perl 中的正确方法是什么?

最佳答案

在针对示例文件进行测试后,我将 oneliner 从注释转换为适当的脚本。

脚本的核心是正则表达式 /(\xff\xd8\xff.*?\x{ff}\x{d9})/s,它提取 JPEG 的开头 header 直到(包括)JPEG 标记 \xff\xd9 的末尾,同时仍然允许其中包含换行符等(/s 修饰符):

#!perl
use strict;
use warnings;

$/ = undef;

my( $filename ) = 'wapenc_T=mavodi-6-13b-1f-4-7c-4806803';
my( $outfilename ) = "$filename-thumbnail.jpeg";

open my $fh, '<:raw', $filename
or die "Couldn't read '$filename': $!";
my $buffer;
{
local $/;
$buffer = <$fh>;
};

open my $output, '>:raw', $outfilename
or die "Couldn't write to '$outfilename': $!";

if( $buffer =~ /(\xff\xd8\xff.*?\x{ff}\x{d9})/s ) {;
print $output $1
};

关于linux - 从 SMIL 文件中提取 jpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53853745/

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