$v) { if (!$v) continue; set_time_limit(10); for ($tree = 0; $tree < 3; $tree++) { $what = $k ? 'classMask' : 'creatureFamilyMask'; $set = $k ? 1 << ($k - 1) : 1 << $tree; $subset = $k ? $tree : 0; $path = $k ? 'talents/icons' : 'hunterpettalents'; $outFile = 'static/images/wow/'.$path.'/'.$v.'_'.($tree + 1).'.jpg'; $icons = DB::Aowow()->SelectCol($query, $what, $set, $subset); if (empty($icons)) { CLISetup::log('talentIcons - query for '.$v.' tree: '.$k.' returned empty', CLISetup::LOG_ERROR); $success = false; continue; } if ($res = imageCreateTrueColor(count($icons) * $dims, 2 * $dims)) { for ($i = 0; $i < count($icons); $i++) { $imgFile = 'static/images/wow/icons/medium/'.strtolower($icons[$i]).'.jpg'; if (!file_exists($imgFile)) { CLISetup::log('talentIcons - raw image '.CLISetup::bold($imgFile). ' not found', CLISetup::LOG_ERROR); $success = false; break; } $im = imagecreatefromjpeg($imgFile); // colored imagecopymerge($res, $im, $i * $dims, 0, 0, 0, imageSX($im), imageSY($im), 100); // grayscale if (imageistruecolor($im)) imagetruecolortopalette($im, false, 256); for ($j = 0; $j < imagecolorstotal($im); $j++) { $color = imagecolorsforindex($im, $j); $gray = round(0.299 * $color['red'] + 0.587 * $color['green'] + 0.114 * $color['blue']); imagecolorset($im, $j, $gray, $gray, $gray); } imagecopymerge($res, $im, $i * $dims, $dims, 0, 0, imageSX($im), imageSY($im), 100); } if (@imagejpeg($res, $outFile)) CLISetup::log(sprintf(ERR_NONE, CLISetup::bold($outFile)), CLISetup::LOG_OK); else { $success = false; CLISetup::log('talentIcons - '.CLISetup::bold($outFile.'.jpg').' could not be written', CLISetup::LOG_ERROR); } } else { $success = false; CLISetup::log('talentIcons - image resource not created', CLISetup::LOG_ERROR); continue; } } } return $success; } ?>