Как найти естественный размер/размеры 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
Я не мог найти исходный источник, пожалуйста, зачислите разработчика, если вы знаете. Спасибо.
Ответ 3
Я сделал script для определения размеров удаленной swf и печати кода вставки файла.
http://www.igrice-tigrice.com/flash-dimensions.php
Ответ 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)))