Решил пойти простым путем, но 100% работающим. Если есть функция createimagetruecolor(), то определяем как GD2, если нет, то GD. Собственно, наверно, только у меня ещё до сих пор стоит GD, поэтому я и парился с этим, но все-таки для чистоты совести выкладываю.
В файле
/usr/system/image_resize.inc.php вместо этого (содержимое стандартного
/usr/system/image_resize.inc.php из Sapid 1.2.3.06):
function _sysB_chkgd2()
{
$rep=false;
if(isset($GLOBALS["gBGDVersion"])) {
$rep=$GLOBALS["gBGDVersion"];
} else {
if(function_exists("gd_info")) {
$gdver=gd_info();
$GLOBALS["gBGDVersion"]=$rep=preg_replace("/^(.*)(\d+?\.?\d+?\.?)(.*)$/", "\\2", $gdver["GD Version"]);
} else {
$arr=get_loaded_extensions();
if(in_array("gd", $arr) and $im=@imagecreatetruecolor(1,1)) {
imagedestroy($im);
$GLOBALS["gBGDVersion"]=$rep="2.0";
}elseif (in_array("gd", $arr) and $im=@imagecreate(1,1)){
imagedestroy($im);
$GLOBALS["gBGDVersion"]=$rep="1.6";
}
}
}
return $GLOBALS["gBGDVersion"];
}
Вставляем следующее:
function _sysB_chkgd2()
{
$rep=false;
if(isset($GLOBALS["gBGDVersion"])) {
$rep=$GLOBALS["gBGDVersion"];
} else {
$arr=get_loaded_extensions();
if(in_array("gd", $arr) and function_exists(imagecreatetruecolor)) {
$GLOBALS["gBGDVersion"]=$rep="2.0";
}elseif (in_array("gd", $arr) and !function_exists(imagecreatetruecolor)){
$GLOBALS["gBGDVersion"]=$rep="1.6";
}
}
return $GLOBALS["gBGDVersion"];
}
Надеюсь, теперь эта проблема решена окончательно.