Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Mp3 Cover Extractor Mer 22 Oct 2014 - 23:34 | |
| Je vous embête une dernière fois avec les *.mp3 Ce coup ci c' est pour récupérer la pochette intégrée dans un fichier et tout en Panoramic. - Code:
-
' attribution du nom de l' application Application_title "Mp3 Cover Extractor" ' déclaration des variables globales événements Dim clic% ' déclaration des variables globales d' adresses dim dir_mp3$ dir_mp3$="C:\Users\" ' déclaration des variables globales fonctions Dim file$,typ$,Img$ ' déclarations des labels Label Clic,L
' ----- Interface Utilisateur ------------------------------------------------- Caption 0,"Mp3 Cover Extractor" Top 0,10 : Left 0,10 :Height 0,368 :Width 0,326 Font_name 0,"arial" Main_menu 1 Sub_menu 2 : parent 2,1 : caption 2,"Fichier" Sub_menu 3 : parent 3,2 : caption 3,"Ouvrir" : On_click 3,Clic Sub_menu 4 : parent 4,2 : caption 4,"Enregistrer" : Inactive 4 :On_click 4,Clic Sub_menu 5 : parent 5,2 : caption 5,"-" Sub_menu 6 : parent 6,2 : caption 6,"Quitter" : On_click 6,Clic Picture 7 : Top 7,5 : Left 7,5 : Height 7,300 : Width 7,300 End
' ----- Menu ------------------------------------------------------------------
Clic: clic%=Number_click Select clic% Case 3 Select_file() if File$<>"" Recup_info(File$) end_if Case 4 Save() Case 6 If file_exists(Img$)=1 : File_delete Img$ : End_if Terminate End_select Return
' ----- Fonctions -------------------------------------------------------------
' Ouverture d' un fichier Sub Select_file() Dim_local f$ File$="" Open_dialog 8 Dir_dialog 8,dir_mp3$ Filter 8,"*.mp3|*.mp3" f$=File_name$(8) If f$<>"_" file$=f$ End_if delete 8 End_sub
' Récupération des infos nécessaires sur le fichier ouvert Sub Recup_info(F$) Dim_local x%,Tf%,bloc%(8),Mess$,dep%,fin%,nbrO%,suf$ Mess$="Ce fichier ne contient pas la pochette de l' album !..." Img$="C:\Users\Yannick\Desktop\temp." Waiting() Pause 100 Filebin_open_read 9,F$ Tf%=Filebin_size(9) Filebin_position 9,0 Filebin_block_read 9,3,bloc%(0) ' Recherche de l' image ' Recherche de tag de norme ID3 porteur d' une image puis, ' dans le cas positif, recherche du marqueur APIC signifiant ' la présence d' une image Caption 21,"Recherche de l' image..." display Position 22,1 display If chr$(bloc%(0))+chr$(bloc%(1))+chr$(bloc%(2))="ID3" For x%=0 to Tf% Filebin_position 9,x% Filebin_block_read 9,4,bloc%(0) If chr$(bloc%(0))+chr$(bloc%(1))+chr$(bloc%(2))+chr$(bloc%(3))="APIC" dep%=x% Else If chr$(bloc%(0))+chr$(bloc%(1))=chr$(255)+chr$(251) fin%=x% If dep%=0 If Message_Warning_OK(Mess$+"( 2 )")=1 : End_if End_if Exit_for End_if End_if Next x% Else If Message_Warning_OK(Mess$+"( 1 )")=1 : End_if Exit_sub End_if
If dep%>0 Caption 21,"Recherche de la position de départ..." display Position 22,2 display ' determination du type de fichier image et de son octet de départ For x%=dep% to fin% Filebin_position 9,x% Filebin_block_read 9,8,bloc%(0) If chr$(bloc%(0))+chr$(bloc%(1))=chr$(255)+chr$(216) dep%=x% typ$="jpg" Exit_for End_if If chr$(bloc%(0))+chr$(bloc%(1))+chr$(bloc%(2))+chr$(bloc%(3))+chr$(bloc%(4))+chr$(bloc%(5))+chr$(bloc%(6))+chr$(bloc%(7))=chr$(137)+chr$(80)+chr$(78)+chr$(71)+chr$(13)+chr$(10)+chr$(26)+chr$(10) dep%=x% typ$="png" Exit_for End_if If chr$(bloc%(0))+chr$(bloc%(1))="BM" dep%=x% typ$="bmp" Exit_for End_if If chr$(bloc%(0))+chr$(bloc%(1))+chr$(bloc%(2))="GIF" dep%=x% typ$="gif" Exit_for End_if Next x% Caption 21,"Recherche de la position de fin de l' image..." display Position 22,3 display ' détermination de la fin du fichier image For x%=dep% to fin% Filebin_position 9,x% Filebin_block_read 9,8,bloc%(0) If chr$(bloc%(0))+chr$(bloc%(1))=chr$(255)+chr$(217) and typ$="jpg" fin%=x%+2 Exit_for End_if If chr$(bloc%(0))+chr$(bloc%(1))+chr$(bloc%(2))+chr$(bloc%(3))+chr$(bloc%(4))+chr$(bloc%(5))+chr$(bloc%(6))+chr$(bloc%(7))=chr$(73)+chr$(69)+chr$(78)+chr$(68)+chr$(174)+chr$(66)+chr$(96)+chr$(130) and typ$="png" fin%=x%+8 Exit_for End_if Next x% End_if Caption 21,"Extraction de l' image..." display Position 22,4 display ' extraction de l' image et enregistrement dans un fichier nbrO%=fin%-dep%+1 If variable("Tab%")=0 Then Dim Tab%(nbrO%) Filebin_position 9,dep% Filebin_block_read 9,nbrO%,Tab%(0) Img$=Img$+typ$ Filebin_open_write 10,img$ Filebin_block_write 10,nbrO%,Tab%(0) Filebin_close 10 Filebin_close 9 Hide 20 suf$=File_extract_extension$(img$) If suf$=".jpg" Or suf$=".bmp" File_load 7,img$ Else Message "L' extension du fichier est *."+typ$+chr$(13)+"Cette extension n' est pas reconnu par la visionneuse." +chr$(13)+"Cependant,vous pouvez la sauvegarder. End_if Stretch_on 7 Active 4 free Tab% End_sub
Sub Waiting() If object_exists(20)=1 Show 20 Else Form 20 : Top 20,Top(0)+100 : Left 20,Left(0) : Height 20,100 : Width 20,Width(0) Caption 20,"Mp3 Cover Extractor" Alpha 21 : Parent 21,20 :Top 21,10 : Left 21,5 Progress_bar 22 :Parent 22,20 : Top 22,30 : Left 22,5 : Width 22,Width(20)-26 End_if Min 22,0 : Max 22,4 : Position 22,0 End_sub
Sub Save() Dim_local f$ If file_exists(img$)=1 L: f$="" Save_dialog 10 Dir_dialog 10,":\" Filter 10,"*."+typ$+"|*."+typ$ f$=File_name$(10) If Right$(f$,4)<>"."+typ$ : f$=f$+"."+typ$ : End_if If f$<>"_."+typ$ If File_exists(f$)=0 File_rename img$,f$ Else Message "Ce fichier exite déjà !" delete 10 goto L End_if End_if Delete 10 Img$="" End_if End_sub
Dernière édition par ygeronimi le Jeu 23 Oct 2014 - 3:40, édité 1 fois (Raison : correction d' un bug...ou deux...) | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Mp3 Cover Extractor Jeu 23 Oct 2014 - 0:21 | |
| En peu de lignes et en tout Panoramic, chapeau ! Tu es devenu imbattable dans la manipulation des fichiers binaires... | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 23 Oct 2014 - 0:31 | |
| J' ai trouvé un bug Rien de méchant mais j' aime pas cà.... | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 23 Oct 2014 - 3:45 | |
| Bug corrigé ! Le code dans le post plus haut est à jour. Il s' agissait des formats non pris en compte pour un "Picture" (*.png *.gif ) et du cas où l' on essayer d' enregistrer un fichier temp qui n' avait pas été créé . Mp3 Cover extractor reconnait les formats *.jpg , *.bmp , *.png , *.gif | |
|
Contenu sponsorisé
| Sujet: Re: Mp3 Cover Extractor | |
| |
|