Project

General

Profile

Feature #24042 ยป 16375.patch

Administrator Admin, 2010-11-13 18:47

View differences:

t3lib/class.t3lib_stdgraphic.php (Arbeitskopie)
$data = $this->getImageScale($info,$w,$h,$options);
$w=$data['origW'];
$h=$data['origH'];
// check if there is a specific resolution (DPI) set
$resolution = intval($options['resolution']);
$resolutionFactor = ($resolution > 35 ? $resolution / 72.0 : NULL);
// check if original image is smaller than requested
$origImageIsSmaller = ($resolutionFactor && $info[0] <= intval($data[0] * $resolutionFactor) && $info[1] <= intval($data[1] * $resolutionFactor));
// if no conversion should be performed
// this flag is true if the width / height does NOT dictate
......
// dimensions or if the option to not scale the image is set)
$noScale = (!$w && !$h) || ($data[0] == $info[0] && $data[1] == $info[1]) || $options['noScale'];
if ($noScale && !$data['crs'] && !$params && !$frame && $newExt == $info[2] && !$mustCreate) {
// return original image, if noScale is set OR if original image is smaller than requested (upscale doesnt make sense ...)
if (($noScale && !$data['crs'] && !$params && !$frame && $newExt == $info[2] && !$mustCreate) || $origImageIsSmaller) {
// set the new width and height before returning,
// if the noScale option is set
if ($options['noScale']) {
......
if (!$data['origH']) { $data['origH'] = $data[1]; }
$offsetX = intval(($data[0] - $data['origW']) * ($data['cropH']+100)/200);
$offsetY = intval(($data[1] - $data['origH']) * ($data['cropV']+100)/200);
$params .= ' -crop '.$data['origW'].'x'.$data['origH'].'+'.$offsetX.'+'.$offsetY.' ';
// update the width and height, if the resolution is different
if ($resolutionFactor) {
$params .= ' -crop ' . ($data['origW'] * $resolutionFactor) . 'x' . ($data['origH'] * $resolutionFactor) . '+' . ($offsetX * $resolutionFactor) . '+' . ($offsetY) . ' ';
} else {
$params .= ' -crop ' . $data['origW'] . 'x' . $data['origH'] . '+' . $offsetX . '+' . $offsetY . ' ';
}
}
$command = $this->scalecmd.' '.$info[0].'x'.$info[1].'! '.$params.' ';
$cropscale = ($data['crs'] ? 'crs-V'.$data['cropV'].'H'.$data['cropH'] : '');
// if rendered in a different resolution, add an additional parameter
// and update the command to multiply with the resolution factor
if ($resolutionFactor) {
$params .= ' -density ' . $resolution . 'x' . $resolution . ' ';
$command = $this->scalecmd . ' ' . intval($info[0] * $resolutionFactor) . 'x' . intval($info[1] * $resolutionFactor) . '! ' . $params . ' ';
$cropscale = ($data['crs'] ? 'crs-V' . intval($data['cropV'] * $resolutionFactor) . 'H' . intval($data['cropH'] * $resolutionFactor) : '');
} else {
$command = $this->scalecmd . ' ' . $info[0] . 'x' . $info[1] . '! ' . $params . ' ';
$cropscale = ($data['crs'] ? 'crs-V' . $data['cropV'] . 'H' . $data['cropH'] : '');
}
if ($this->alternativeOutputKey) {
$theOutputName = t3lib_div::shortMD5($command.$cropscale.basename($imagefile).$this->alternativeOutputKey.'['.$frame.']');
......
if (file_exists($output)) {
$info[3] = $output;
$info[2] = $newExt;
if ($params) { // params could realisticly change some imagedata!
$info=$this->getImageDimensions($info[3]);
// params could realisticly change some imagedata!
if ($params) {
$info = $this->getImageDimensions($info[3]);
// update the width and height, if the resolution is different
if ($resolutionFactor) {
$info[0] = intval($info[0] / $resolutionFactor);
$info[1] = intval($info[1] / $resolutionFactor);
}
}
if ($info[2]==$this->gifExtension && !$this->dontCompress) {
t3lib_div::gif_compress($info[3],''); // Compress with IM (lzw) or GD (rle) (Workaround for the absence of lzw-compression in GD)
typo3/sysext/cms/tslib/class.tslib_content.php (Arbeitskopie)
$fileArray['minW'] = intval($this->stdWrap($fileArray['minW'], $fileArray['minW.']));
$fileArray['minH'] = intval($this->stdWrap($fileArray['minH'], $fileArray['minH.']));
$fileArray['noScale'] = $this->stdWrap($fileArray['noScale'], $fileArray['noScale.']);
$fileArray['resolution'] = $this->stdWrap($fileArray['resolution'], $fileArray['resolution.']);
$maskArray = $fileArray['m.'];
$maskImages = array();
if (is_array($fileArray['m.'])) { // Must render mask images and include in hash-calculating - else we cannot be sure the filename is unique for the setup!
......
if ($fileArray['noScale']) {
$options['noScale'] = $fileArray['noScale'];
}
if ($fileArray['resolution']) {
$options['resolution'] = $fileArray['resolution'];
}
// checks to see if m (the mask array) is defined
if (is_array($maskArray) && $GLOBALS['TYPO3_CONF_VARS']['GFX']['im']) {
    (1-1/1)