Магия изображения TIFF количество слоев всегда возвращает 1 - PullRequest
1 голос
/ 13 декабря 2011

обновление: я выяснил проблему, запустив команду cat в exec, прочитав изображение как текст и выполнив поиск слова layer.это работает на всех изображениях, которые я тестировал.Это даже работает, если слой переименован во что-то отличное от Layer 1.

exec("cat $filename | fgrep -a 'layer'", $ret);
if(!strpos(implode($ret),'layer')){
    $layers='false';
}else{
    $layers='true';
}

. Пожалуйста, проголосуйте за закрытие, или что-то еще происходит в этой ситуации.

/////////////////////////////////

Я пытаюсь выяснить, содержит ли файл TIFF один или несколько слоев, так что ямогу установить значение true / false в моей базе данных.Проблема не в том, что я делаю, она всегда говорит, что изображение имеет один слой.Чем больше я читаю, тем лучше то, что я делаю для подсчета количества слоев в GIF-файле.Буду признателен за любую помощь

$all=exec("/opt/local/bin/identify -format %w-%h-%x-%z-'%[colorspace]'-'%[channels]'-'%[scenes]' $newfile");
$ex=explode("-",$all);
$width=$ex[0];
$height=$ex[1];
$dpi=$ex[2];
$dpi=explode(" ", $dpi);
$dpi=$dpi[0];
$depth=$ex[3];
$colorspace=$ex[4];
$channels=$ex[5];
$layers=$ex[6];

Все мои переменные работают правильно, кроме $layers.он возвращает 1 независимо от того, сколько слоев в моем файле.

1 Ответ

1 голос
/ 21 августа 2012

TIFF-файлы не имеют нескольких «слоев».Но они могут содержать несколько страниц (и я думаю, это то, что вы имеете в виду).

Вы можете использовать просто

 identify  multipage.tiff

, и вы должны увидеть отдельную строку для каждого отдельного изображения страницы TIFF:

multipage.tif[0] TIFF 1728x2292 1728x2292+0+0 1-bit Bilevel DirectClass 220KB 0.010u 0:00.000
multipage.tif[1] TIFF 1728x2292 1728x2292+0+0 1-bit Bilevel DirectClass 220KB 0.000u 0:00.000
multipage.tif[2] TIFF 1728x2292 1728x2292+0+0 1-bit Bilevel DirectClass 220KB 0.000u 0:00.000
multipage.tif[3] TIFF 1728x2292 1728x2292+0+0 1-bit Bilevel DirectClass 220KB 0.000u 0:00.000

Обратите внимание, что отсчет начинается с нуля и начинается с [0].

%[scenes] вашей строки формата в вашем PHP exec также уже запрашивает правильную вещь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...