
Теперь совершенно не важно, сколько пикселей будет кропнуто с любой стороны - на точности результатов вычислений это вообще никак не скажется!
Итак: потребуется знать лишь, PAL это или NTSC, 16:9 или 4:3 (DVD Info нам в этом поможет).
Введем переменную R, которая вычисляется для каждого из четырех случаев следующим образом:
QUOTE
PAL 16:9 - R=720/(576*16/9)=0.703125
NTSC 16:9 - R=720/(480*16/9)=0.84375
PAL 4:3 - R=720/(576*4/3)=0.9375
NTSC 4:3 - R=720/(480*4/3)=1.125
NTSC 16:9 - R=720/(480*16/9)=0.84375
PAL 4:3 - R=720/(576*4/3)=0.9375
NTSC 4:3 - R=720/(480*4/3)=1.125
(здесь я пока не беру в расчет кривые DVD с уменьшенным разрешением, и даже не знаю - стоит ли это делать вообще)
Далее всё просто:
QUOTE
Y2=Y1*R*(X2/X1)
Где X1, Y1 - размер после кропа
А X2, Y2 - конечный размер после ресайза
Остается лишь округлить результат в какую-либо сторону (до кратного 16-ти).
Хочу еще раз отметить - по формуле можно высчитывать не только "амбразуры" типа 640х272, но и варианты с любым кропом по бокам - результат всё равно будет точен!
Формулу протестировал на десятке скриптов от своих старых рипов - всё совпало целиком и полностью, с учетом округления вертикального разрешения до числа кратного 16!
Если будут вопросы - с радостью отвечу! )