Я могу успешно получить mp3 ID3-тэги из своего mp3-приложения, используя php. Я остался с огромным BLOB. Я уверен, что это довольно просто, но мне нужна небольшая помощь в правильном направлении. Я бы хотел, чтобы это закончилось (BLOB DATA CORRECTED):
$media_year = implode($ThisFileInfo['comments_html']['year']); $media_genre = implode($ThisFileInfo['comments_html']['genre']); $media_jpg = [BLOBDATA];
( Я знаю, что это не имеет никакого программирования, но вы поняли, что первые две строки отлично работают для меня, но я не знаю, как получить BLOBDATA из тегов ID3 и преобразовать его в JPG, который я могу отобразить. )
В другом учебнике я вижу это, но он не связывает точки для меня:
[comments] => Array ( [picture] => Array ( [0] => Array ( [data] => <binary data> [image_mime] => image/jpeg ) ) )
Я ненавижу просить читателей «сделать это за меня», пожалуйста, простите меня. Но я пробовал каждый ресурс, который я могу найти. Любая помощь в высшей степени оценена.
Я использую библиотеку getid3 для этой работы отлично, как
<?php $Path="mp3 file path"; $getID3 = new getID3; $OldThisFileInfo = $getID3->analyze($Path); if(isset($OldThisFileInfo['comments']['picture'][0])){ $Image='data:'.$OldThisFileInfo['comments']['picture'][0]['image_mime'].';charset=utf-8;base64,'.base64_encode($OldThisFileInfo['comments']['picture'][0]['data']); } ?> <img id="FileImage" width="150" src="<?php echo @$Image;?>" height="150">
в этом коде я встроен в HTML с base64_encode
который вы можете видеть
вы можете использовать file_put_contents (), чтобы сохранить данные изображения id3 в файл.
$path = "/Applications/MAMP/htdocs/site/example.mp3"; //example. local file path to mp3 $getID3 = new getID3; $tags = $getID3->analyze($Path); if (isset($tags['comments']['picture']['0']['data'])) { $image = $tags['comments']['picture']['0']['data']; if(file_put_contents(FCPATH . "imageTest.jpg", $image)) { echo 'Image Added'; } else { echo 'Image Not Added'; } }
или вы можете отобразить изображение на месте, используя
header('Content-Type: image/jpeg'); echo $tags['comments']['picture']['0']['data'];
Я нашел статью, которая объясняет структуру тегов ID3. http://www.stagetwo.eu/article/19-MP3-ID3-Tags-Wie-kann-man-die-teile-lesen Это должно помочь вам понять и проанализировать их. Это на немецком языке, но, возможно, статья о структуре тэгов ID3 также читается с помощью переводчика google. Мне нравится описание важных байтов и, например, объяснение целого числа SyncSafe.
В вашей проблеме описывается структура структуры APIC (Image). Когда вы проанализировали эту структуру, и вы получили bytestream, просто используйте imagecreatefromstring($byteStream)
Теперь у вас есть ресурс изображения из MP3 🙂