обновление: я выяснил проблему, запустив команду 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
независимо от того, сколько слоев в моем файле.