我的问题的背景是我想要提取动态照片的视频数据(由我的三星S7拍摄)。手动它很容易但很耗时。只需在HexEditor中打开.jpg文件,然后在“MotionPhoto_Data”行之后提取所有数据。第一部分是图像,第二部分是视频。
我目前的代码是
<?php
$array = array(
'547650d3bfb9bce7ea6d61faf312fa41' => array
(
'id' => 1502369193000,
'productid' => 'Product 1',
'qty' => 1,
'type' => 'sales',
'user_id' => 'admin',
'rowid' => '547650d3bfb9bce7ea6d61faf312fa41'
),
'7473a2e4d2e4150c7de11d201538e179' => array
(
'id' => 1502369241000,
'productid' => 'SG KENNA',
'qty' => 1,
'type' => 'purchase',
'user_id' => 'admin',
'rowid' => '7473a2e4d2e4150c7de11d201538e179'
)
);
function searchInArray($array) {
$returnArray = [];
foreach ($array as $key => $val) {
if ($val['user_id'] === 'admin' && $val['type'] === 'sales') {
$returnArray[$key] = $array[$key];
}
}
return $returnArray;
}
print_r(searchInArray($array));
if(isset($array) && !empty($array)) {
echo 'Found';
} else {
echo 'None found';
}
?>
我现在的问题是,我无法弄清楚如何以im = 'test.jpg'
with open(im, 'rb') as fin:
data = fin.read()
data_latin = data.decode('latin1')
fin.close()
position = data_latin.find('MotionPhoto_Data')
data_pic = data[:position]
data_mpg = data[position:]
保存为工作jpg和data_pic
作为工作视频的方式保存这些字符串。
我试过
data_mpg
但这没效果。我认为如何处理/保存我的数据存在一个基本问题,但我无法弄清楚如何解决这个问题。
答案 0 :(得分:0)
我假设您使用python 3,因为它标记为这样。
您不应使用'data.decode('latin1')进行解码。它是二进制数据。
data = fin.read()
然后将其写为二进制数据:
with open('test_pic.jpg', 'ab') as fout:
fout.write(data_pic)
fout.close()