imagemagick возвращает большой массив значений измерений в анимированном GIF при использовании идентификатора - PullRequest
1 голос
/ 27 апреля 2011

У меня проблемы с получением размеров изображения с помощью команды идентификации imagemagick:

identify -format "%w^%h" 

Для анимированных GIF-файлов он возвращает большие массивы, такие как:

Array ( [0] => 500 [1] => 322500 [2] => 322307 [3] => 178151 [4] => 322500 [5] => 178500 [6] => 322500 [7] => 322500 [8] => 322500 [9] => 302500 [10] => 322306 [11] => 303500 [12] => 303500 [13] => 322500 [14] => 317381 [15] => 322500 [16] => 322500 [17] => 178500 [18] => 178500 [19] => 322151 [20] => 322500 [21] => 178500 [22] => 322500 [23] => 322500 [24] => 322500 [25] => 302500 [26] => 322306 [27] => 303500 [28] => 303500 [29] => 322500 [30] => 317381 [31] => 322500 [32] => 322500 [33] => 178500 [34] => 178500 [35] => 322151 [36] => 322500 [37] => 178500 [38] => 322500 [39] => 322500 [40] => 322500 [41] => 302500 [42] => 322306 [43] => 303500 [44] => 303500 [45] => 322500 [46] => 317381 [47] => 322500 [48] => 322500 [49] => 178500 [50] => 178500 [51] => 322151 [52] => 322500 [53] => 178500 [54] => 322500 [55] => 322500 [56] => 322500 [57] => 302500 [58] => 322306 [59] => 303500 [60] => 303500 [61] => 322500 [62] => 317381 [63] => 322500 [64] => 322500 [65] => 178500 [66] => 178500 [67] => 322151 [68] => 322500 [69] => 178500 [70] => 322500 [71] => 322500 [72] => 322500 [73] => 302500 [74] => 322306 [75] => 303500 [76] => 303500 [77] => 322500 [78] => 317381 [79] => 322500 [80] => 322500 [81] => 17827 [82] => 2127 [83] => 2127 [84] => 2127 [85] => 2127 [86] => 2127 [87] => 21 ) 

Я предполагаю, что этополучает размеры каждого кадра.Это затрудняет получение правильных размеров, которые в этом случае (500x322).Что я могу сделать?

1 Ответ

0 голосов
/ 31 августа 2011
exec('identify -format "%w%h\n" image.gif', $output)
foreach($output as $line) {
    $i = explode(" ", $line);
    $w = $i[0];
    $h = $i[1];
}

Это должно сработать - ImageMagick напечатает информацию в одну строку в формате explode, а затем перейдет к следующей строке.Возможно, вам придется пропустить последнюю строку $output, так как она может быть пустым.

...