/** * Crops vertically this rectangle by increasing top side and/or reducing the bottom side. * * @param int $pixels - the amount to substract from the height * @param string $coi - a 4 character string (or null) containing the center of interest */ function crop_v($pixels, $coi) { if ($this->height() <= $pixels) { return; } $tlcrop = floor($pixels / 2); if (!empty($coi)) { $coit = floor($this->b * char_to_fraction($coi[1])); $coib = ceil($this->b * char_to_fraction($coi[3])); $availableT = $coit > $this->t ? $coit - $this->t : 0; $availableB = $coib < $this->b ? $this->b - $coib : 0; if ($availableT + $availableB >= $pixels) { if ($availableT < $tlcrop) { $tlcrop = $availableT; } elseif ($availableB < $tlcrop) { $tlcrop = $pixels - $availableB; } } } $this->t += $tlcrop; $this->b -= $pixels - $tlcrop; }
function parse_custom_params($tokens) { if (count($tokens) < 1) { ierror('Empty array while parsing Sizing', 400); } $crop = 0; $min_size = null; $token = array_shift($tokens); if ($token[0] == 's') { $size = url_to_size(substr($token, 1)); } elseif ($token[0] == 'e') { $crop = 1; $size = $min_size = url_to_size(substr($token, 1)); } else { $size = url_to_size($token); if (count($tokens) < 2) { ierror('Sizing arr', 400); } $token = array_shift($tokens); $crop = char_to_fraction($token); $token = array_shift($tokens); $min_size = url_to_size($token); } return new DerivativeParams(new SizingParams($size, $crop, $min_size)); }
$query = 'SELECT * FROM ' . IMAGES_TABLE . ' WHERE id=' . $_GET['image_id']; $row = pwg_db_fetch_assoc(pwg_query($query)); if (isset($_POST['submit'])) { foreach (ImageStdParams::get_defined_type_map() as $params) { if ($params->sizing->max_crop != 0) { delete_element_derivatives($row, $params->type); } } delete_element_derivatives($row, IMG_CUSTOM); $uid = '&b=' . time(); $conf['question_mark_in_urls'] = $conf['php_extension_in_urls'] = true; if ($conf['derivative_url_style'] == 1) { $conf['derivative_url_style'] = 0; //auto } } else { $uid = ''; } $tpl_var = array('TITLE' => render_element_name($row), 'ALT' => $row['file'], 'U_IMG' => DerivativeImage::url(IMG_LARGE, $row)); if (!empty($row['coi'])) { $tpl_var['coi'] = array('l' => char_to_fraction($row['coi'][0]), 't' => char_to_fraction($row['coi'][1]), 'r' => char_to_fraction($row['coi'][2]), 'b' => char_to_fraction($row['coi'][3])); } foreach (ImageStdParams::get_defined_type_map() as $params) { if ($params->sizing->max_crop != 0) { $derivative = new DerivativeImage($params, new SrcImage($row)); $template->append('cropped_derivatives', array('U_IMG' => $derivative->get_url() . $uid, 'HTM_SIZE' => $derivative->get_size_htm())); } } $template->assign($tpl_var); $template->set_filename('picture_coi', 'picture_coi.tpl'); $template->assign_var_from_handle('ADMIN_CONTENT', 'picture_coi');