Нужно в окне программы отобразить превью файла (типа как в проводнике отображаются уменьшенные картинки). Это хоть возможно? Если да, то как?
P.s.: Пусть файлы для которых нужно отобразить превью лежат рядом с исполняемым скриптом и называются "video.mp4" и "img.jpg".
---добавлено позже---
img.jpg - НЕ превью
В качестве превью для mp4 нужно отобразить обложку. Что такое "обложка" можно посмотреть по ссылке Обложка.jpg
---что-то похожее---
На сайте autoitscript обсуждали извлечение обложки из mp3 в теме "Extracting album art from mp3"
Но тема для меня не простая и я с "родным" английским не на ты. К сожалению код, приведенный там на 2-й странице даже на mp3 не сработал.
Говорит:
Если есть те, кто поймут, что там написано - опишите, пожалуйста, здесь по русски :-[
---ОТВЕТ---
Сделано по принципу "Extracting album art from mp3" из autoitscript. Код только для поиска png
$ReadTo = 3000000 - ограничение на прочтение первых 3 мб. А то файл на 500 мб просто не прочитается (хотя лично у меня 139 мб обрабатывалось, но около минуты). И пока мне максимум попадались файлы с $EndStr равным 1725545.
P.s.: Пусть файлы для которых нужно отобразить превью лежат рядом с исполняемым скриптом и называются "video.mp4" и "img.jpg".
Код:
#include <GUIConstantsEx.au3>
#include <File.au3>
$video=@ScriptDir&"\video.mp4"
$img=@ScriptDir&"\img.jpg"
$GUI = GUICreate('Preview', 500, 500)
;что делать дальше?
---добавлено позже---
img.jpg - НЕ превью
В качестве превью для mp4 нужно отобразить обложку. Что такое "обложка" можно посмотреть по ссылке Обложка.jpg
---что-то похожее---
На сайте autoitscript обсуждали извлечение обложки из mp3 в теме "Extracting album art from mp3"
Но тема для меня не простая и я с "родным" английским не на ты. К сожалению код, приведенный там на 2-й странице даже на mp3 не сработал.
Говорит:
Код:
MsgBox(64, 'Error', 'Couldnt find end of jpg!')
Если есть те, кто поймут, что там написано - опишите, пожалуйста, здесь по русски :-[
---ОТВЕТ---
Сделано по принципу "Extracting album art from mp3" из autoitscript. Код только для поиска png
Код:
#include <String.au3>
#include <FileConstants.au3>
#include <GDIPlus.au3>
$Mp4 = 'video.mp4'
$NewFile = "Output.png"
$ReadTo = 3000000 ;3mb enough
$File = FileOpen(@ScriptDir & '\'&$Mp4, 16)
$Read = FileRead($File,$ReadTo)
FileClose($File)
$ReadH = _HexToString($Read)
$StartStr = StringInStr($ReadH, '‰PNG', 2, 1)
$EndStr = StringInStr($ReadH, 'IEND®B`‚', 2, 1)
If $StartStr = 0 Then
MsgBox(64, 'Error', 'No match for beginning of png!')
Exit ;Exit because there is no image.
Else
If $EndStr = 0 Then
MsgBox(64, 'Error', 'No match for end of png!')
Else
$Diff = $EndStr + 8 - $StartStr
$Mid = StringMid($ReadH, $StartStr, $Diff)
$StringFileHDL = FileOpen($NewFile, 18)
FileWrite($StringFileHDL, $Mid)
FileClose($StringFileHDL)
;MsgBox(64, 'Message', 'All right')
EndIf
EndIf
$ReadTo = 3000000 - ограничение на прочтение первых 3 мб. А то файл на 500 мб просто не прочитается (хотя лично у меня 139 мб обрабатывалось, но около минуты). И пока мне максимум попадались файлы с $EndStr равным 1725545.