/** * @return bool */ function will_watermark($out_size) { if ($this->use_watermark) { $min_size = ImageStdParams::get_watermark()->min_size; return $min_size[0] <= $out_size[0] || $min_size[1] <= $out_size[1]; } return false; }
foreach (glob(PHPWG_ROOT_PATH . 'themes/default/watermarks/*.png') as $file) { $watermark_files[] = substr($file, strlen(PHPWG_ROOT_PATH)); } if (($glob = glob(PHPWG_ROOT_PATH . PWG_LOCAL_DIR . 'watermarks/*.png')) !== false) { foreach ($glob as $file) { $watermark_files[] = substr($file, strlen(PHPWG_ROOT_PATH)); } } $watermark_filemap = array('' => '---'); foreach ($watermark_files as $file) { $display = basename($file); $watermark_filemap[$file] = $display; } $template->assign('watermark_files', $watermark_filemap); if ($template->get_template_vars('watermark') === null) { $wm = ImageStdParams::get_watermark(); $position = 'custom'; if ($wm->xpos == 0 and $wm->ypos == 0) { $position = 'topleft'; } if ($wm->xpos == 100 and $wm->ypos == 0) { $position = 'topright'; } if ($wm->xpos == 50 and $wm->ypos == 50) { $position = 'middle'; } if ($wm->xpos == 0 and $wm->ypos == 100) { $position = 'bottomleft'; } if ($wm->xpos == 100 and $wm->ypos == 100) { $position = 'bottomright';
} $v = intval($pwatermark['opacity']); if ($v <= 0 or $v > 100) { $errors['watermark']['opacity'] = '(0..100]'; } // step 3 - save data if (count($errors) == 0) { $watermark = new WatermarkParams(); $watermark->file = $pwatermark['file']; $watermark->xpos = intval($pwatermark['xpos']); $watermark->ypos = intval($pwatermark['ypos']); $watermark->xrepeat = intval($pwatermark['xrepeat']); $watermark->yrepeat = intval($pwatermark['yrepeat']); $watermark->opacity = intval($pwatermark['opacity']); $watermark->min_size = array(intval($pwatermark['minw']), intval($pwatermark['minh'])); $old_watermark = ImageStdParams::get_watermark(); $watermark_changed = $watermark->file != $old_watermark->file || $watermark->xpos != $old_watermark->xpos || $watermark->ypos != $old_watermark->ypos || $watermark->xrepeat != $old_watermark->xrepeat || $watermark->yrepeat != $old_watermark->yrepeat || $watermark->opacity != $old_watermark->opacity; // save the new watermark configuration ImageStdParams::set_watermark($watermark); // do we have to regenerate the derivatives (and which types)? $changed_types = array(); foreach (ImageStdParams::get_defined_type_map() as $type => $params) { $old_use_watermark = $params->use_watermark; ImageStdParams::apply_global($params); $changed = $params->use_watermark != $old_use_watermark; if (!$changed and $params->use_watermark) { $changed = $watermark_changed; } if (!$changed and $params->use_watermark) { // if thresholds change and before/after the threshold is lower than the corresponding derivative side -> some derivatives might switch the watermark $changed |= $watermark->min_size[0] != $old_watermark->min_size[0] and ($watermark->min_size[0] < $params->max_width() or $old_watermark->min_size[0] < $params->max_width());