Как найти естественный размер/размеры Flash SWF файла?

Мне предоставлен Flash файл (расширение .swf) для размещения на веб-странице. Открытие файла в моем браузере делает его довольно размытым, поэтому я предполагаю, что для файла есть натуральный размер, такой же, как и изображение.

Он также прямоугольный, поэтому мне нужно разработать соотношение сторон, если у меня нет точного размера. Как я могу найти эту информацию?

Ответ 1

Мне было интересно, как это сделать вчера вечером. Не нашел ничего в google, но потом я вспомнил, что PHP getimagesize работает в swf-фильмах:

<?php
    $file = "YOUR_FILE.swf";
    $info = getimagesize($file);
    $width = $info[0];
    $height = $info[1];
    print "{$width}x{$height}\n";
?>

Ответ 2

Спустя годы я наконец нашел маленький инструмент, который делает ровно одну вещь: отображение высоты и ширины флеш файла. Я не могу поверить, что Adobe никогда не понимала, что важно знать размер flash-программы.

Здесь вы найдете: https://github.com/q2apro/swfinfo/raw/master/swfinfo.swf

Я не мог найти исходный источник, пожалуйста, зачислите разработчика, если вы знаете. Спасибо.

Ответ 4

import zlib, lzma
def getswfdimension(fname):
    with open(fname, 'rb') as f:
        buf = f.read()
    sig = buf[:3].decode('ascii')
    d = None
    if sig == 'FWS':
        # uncompressed
        d = buf[8:]
    elif sig == 'CWS':
        d = zlib.decompress(buf[8:])
    elif sig == 'ZWS':
        d = lzma.decompress(buf[8:])
    if not d:
        print('unknown file format')
        return
    nbits = d[0]>>3
    bstr=''
    for i in range(32):
        bstr += '{:08b}'.format(d[i])
    bstr = bstr[5:]
    w = int( bstr[ nbits : 2*nbits], 2) # width in twips
    h = int (bstr[3*nbits: 4*nbits], 2)
    # width x height in pixel
    print("{} {} x {}".format(fname, int(w/20), int(h/20)))