$changes += $image->sharpen($params->sharpen); $timing['sharpen'] = time_step($step); } if ($params->will_watermark($d_size)) { $wm = ImageStdParams::get_watermark(); $wm_image = new pwg_image(PHPWG_ROOT_PATH . $wm->file); $wm_size = array($wm_image->get_width(), $wm_image->get_height()); if ($d_size[0] < $wm_size[0] or $d_size[1] < $wm_size[1]) { $wm_scaling_params = SizingParams::classic($d_size[0], $d_size[1]); $wm_scaling_params->compute($wm_size, null, $tmp, $wm_scaled_size); $wm_size = $wm_scaled_size; $wm_image->resize($wm_scaled_size[0], $wm_scaled_size[1]); } $x = round($wm->xpos / 100 * ($d_size[0] - $wm_size[0])); $y = round($wm->ypos / 100 * ($d_size[1] - $wm_size[1])); if ($image->compose($wm_image, $x, $y, $wm->opacity)) { $changes++; if ($wm->xrepeat || $wm->yrepeat) { $xpad = $wm_size[0] + max(30, round($wm_size[0] / 4)); $ypad = $wm_size[1] + max(30, round($wm_size[1] / 4)); for ($i = -$wm->xrepeat; $i <= $wm->xrepeat; $i++) { for ($j = -$wm->yrepeat; $j <= $wm->yrepeat; $j++) { if (!$i && !$j) { continue; } $x2 = $x + $i * $xpad; $y2 = $y + $j * $ypad; if ($x2 >= 0 && $x2 + $wm_size[0] < $d_size[0] && $y2 >= 0 && $y2 + $wm_size[1] < $d_size[1]) { if (!$image->compose($wm_image, $x2, $y2, $wm->opacity)) { break; }