Seite 1 von 2

Bildqualität einstellbar ??!!

Verfasst: Fr 31. Mär 2006, 10:54
von Hinky01
Hallo,

ich suche einen Tipp wie ich suchen muss.

Ja, bitte sagt mir wo ich eine Information dazu finde wie ich die JPG-Qualität einstellen kann (Für das standartmäßige Illustrationsmodul). Meine JPG´s die ich hochlade werden extrem schlecht von Contenido kompremiert.

Unter Bildqualität, JPG, Illustrtionsmodul, kompremierung ... bin ich hier nicht fündig geworden.


Danke im vorraus
Boris

Verfasst: Fr 31. Mär 2006, 11:00
von Pillendreher
warum reduzierst du die bildgröße nciht direkt in einem bildbearbeitungsprogramm für das Illustrationsmodul?

Die Bilder werden doch immer in der gleichen größe angezeigt, oder?

Dann könntest du die ja direkt in der passenden größe hochladen

Verfasst: Fr 31. Mär 2006, 11:14
von phpchris
Sie werden dennoch komprimiert...

Bildquali

Verfasst: Fr 31. Mär 2006, 11:15
von Hinky01
Pillendreher hat geschrieben:warum reduzierst du die bildgröße nciht direkt in einem bildbearbeitungsprogramm für das Illustrationsmodul?

Die Bilder werden doch immer in der gleichen größe angezeigt, oder?

Dann könntest du die ja direkt in der passenden größe hochladen
DIe Bildgröße ist 1zu1 d.h. ich lade Sie in der Größe hoch in der sie angezeigt werden.
Aber sie werden trotzdem reduziert bzw. kompremiert.
Die Bildgröße in Pixeln habe ich genau angepasst.
Ich frage mich nur wo ich die Kompremierung ausschalten kann, denn ich würde gerne mit Photoshop meine Bilder selbst kompremieren und 1zu1 anzeigen lassen.

Ach ja, danke für die fixe Antwort

Boris

Verfasst: Fr 31. Mär 2006, 11:27
von phpchris
Ich glaube, das muss man direkt in einer PHP-Datei aus dem Ordner /contenido/includes rausbauen.
Habe es mal gemacht, aber mir natürlich nicht gemerkt wo und habe dann ein Update auf die 4.6.8 gemacht :p

Verfasst: Fr 31. Mär 2006, 11:34
von HerrB
Es findet keine Komprimierung statt, sondern das Bild wird nochmal als .jpg gespeichert. Und da das Original bereits mit 10% Kompression gespeichert worden sein dürfte, das dann durch die PHP-Grafikfunktionen durchläuft und dann nochmal mit 10% Kompression gespeichert wird, kommt Murx raus.

Es gibt zwei Lösungen:
- Das Modul Illustration so umzuprogrammieren, dass es nur ein Resize durchführt, wenn die Bildmaße die maximalen Grenzen überschreitet bzw. wenn nicht das Originalbild angezeigt wird (statt der Cache-Datei)
- Die Funktionen zum Resize in contenido/includes/functions.api.images.php so überarbeiten, dass sie - wenn kein Resize erforderlich ist - die Originaldatei als Thumbnail im cache speichern

Gruß
HerrB

Verfasst: Fr 31. Mär 2006, 11:52
von Hinky01
HerrB hat geschrieben:Es findet keine Komprimierung statt, sondern das Bild wird nochmal als .jpg gespeichert. Und da das Original bereits mit 10% Kompression gespeichert worden sein dürfte, das dann durch die PHP-Grafikfunktionen durchläuft und dann nochmal mit 10% Kompression gespeichert wird, kommt Murx raus.

Es gibt zwei Lösungen:
- Das Modul Illustration so umzuprogrammieren, dass es nur ein Resize durchführt, wenn die Bildmaße die maximalen Grenzen überschreitet bzw. wenn nicht das Originalbild angezeigt wird (statt der Cache-Datei)
- Die Funktionen zum Resize in contenido/includes/functions.api.images.php so überarbeiten, dass sie - wenn kein Resize erforderlich ist - die Originaldatei als Thumbnail im cache speichern

Gruß
HerrB




Danke für schnellen Antworten (auch PHPChris)

Ich sitze bereits an der "functions.api.images.php" und verzweifle, denn ich produziere immer Fehler wenn ich versuche die Funktionen rauszunehmen oder zu ändern. Hat jemand nicht schon mal das selbige Problem gehabt ??

Naja, sollt ich es lösen werde ich meinen Freudeschrei hier kundtun.

Boris

Habe immer noch kein Erfolg mit der Bildqualität !!!

Verfasst: Fr 31. Mär 2006, 12:09
von Hinky01
Wäre über detalierte Infos zu dem Problem Bildquali sehr dankbar.

Oder für die überarbeitete Datei " functions.api.images.php ".

Ich nutze übrigens die contenido-4.6.4 (mr_060129) Version.



Boris

Verfasst: Fr 31. Mär 2006, 12:32
von HerrB
Wieviele Details brauchst Du denn (noch)? Steht doch alles da...

Gruß
HerrB

Verfasst: Fr 31. Mär 2006, 12:44
von phpchris
//EDIT:

Bittesehr:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     Illustration
* Author(s)   :     Andreas Lindner, 4fb
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     12.08.2005
************************************************/

#Selected img directory
$cms_dirname = "CMS_VALUE[1]";
#Selected img
$cms_filename = "CMS_VALUE[2]";

#Default settings
$img_width = 384;
$img_height = 267;
$defaultImage = 'bilder/illu.jpg';

$htmlpath = $cfgClient[$client]['path']['htmlpath'];
$frontendpath = $cfgClient[$client]['path']['frontend'];

$img_path = $htmlpath.$cfgClient[$client]['upload'].$defaultImage;
$img_path_fs = $frontendpath.$cfgClient[$client]['upload'].$defaultImage;

#Check configured images
if ($cms_dirname != '0' AND $cms_filename != '0' AND strlen($cms_dirname) > 0 AND strlen($cms_filename) > 0) {
	$img_path = $htmlpath.$cfgClient[$client]['upload'].$cms_dirname.$cms_filename;
	$img_path_fs = $frontendpath.$cfgClient[$client]['upload'].$cms_dirname.$cms_filename;

	$img_split = preg_split("/\./", $cms_filename);
	$count = count($img_split);
	$type = $img_split[$count -1];

	if (!file_exists($img_path_fs)) {
		$img_path = $htmlpath.$cfgClient[$client]['upload'].$defaultImage;
		$img_path_fs = $frontendpath.$cfgClient[$client]['upload'].$defaultImage;
	}
}

#Scale image
#$image = capiImgScale($img_path_fs, $img_width, $img_height, false, false, 10, false);

#Get dimensions of scaled image
#list ($width, $height, $type, $attr) = getimagesize($image);

#Output image tag
echo '<img src="'.$img_path.'" border="0" />';
?>

Verfasst: Fr 31. Mär 2006, 12:48
von phpchris
Ich werde bei Gelegenheit mal eine Option einbauen, die die Komprimierung abschaltet.

Bild quali

Verfasst: Fr 31. Mär 2006, 12:58
von Hinky01
phpchris hat geschrieben:Ich werde bei Gelegenheit mal eine Option einbauen, die die Komprimierung abschaltet.

Danke für den Code phpchris !!
War auf der falschen Spur, hätte natürlich erst im Modul schauen sollen.
Habe in den Inludes blind rumgestochert.

Boris

Verfasst: Fr 31. Mär 2006, 13:18
von HerrB
Na, das deaktiviert aber das Resize immer...

Provisorische Lösung:
In contenido/includes/functions.api.images.php bei jeder capiImageScaleXY-Funktion folgendes ergänzen:

Unter

Code: Alles auswählen

	$x = imagesx($imageHandle);
	$y = imagesy($imageHandle);
folgendes ergänzen:

Code: Alles auswählen

	if ($x <= $maxX && $y <= $maxY) {
		return str_replace($cfgClient[$client]["path"]["frontend"], $cfgClient[$client]["path"]["htmlpath"], $img);
	} else {
Und am Ende der jeweiligen Funktion noch ein einfügen.

Ungetestet.

Gruß
HerrB

kannst Du helfen?

Verfasst: Mi 26. Apr 2006, 16:01
von kenzo
Wo kann der Code ergänzt werden?
Geht ja doch schon ans Eingemachte!

Dankbar wie immer :wink:

Code: Alles auswählen

<?php

/*****************************************
* File      :   $RCSfile: functions.api.images.php,v $
* Project   :   Contenido
* Descr     :   Contenido Image API functions
*
* Author    :   $Author: timo.hummel $
*               
* Created   :   08.08.2003
* Modified  :   $Date: 2006/01/13 17:43:45 $
*
* © four for business AG, www.4fb.de
*
* $Id: functions.api.images.php,v 1.37 2006/01/13 17:43:45 timo.hummel Exp $
******************************************/

/* Info:
 * This file contains Contenido Image API functions.
 *
 * If you are planning to add a function, please make sure that:
 * 1.) The function is in the correct place
 * 2.) The function is documented
 * 3.) The function makes sense and is generically usable
 *
 */
 
 
/**
 * capiImgScaleGetMD5CacheFile: Returns the MD5 Filename used
 * for caching.
 *
 * @return string Path to the resulting image
 */
function capiImgScaleGetMD5CacheFile ($sImg, $iMaxX, $iMaxY, $bCrop, $bExpand)
{
	if (!file_exists($sImg))
	{
		return false;	
	}
	
	$iFilesize = filesize($sImg);
	
	if (function_exists("md5_file"))
	{
		$sMD5 = md5(implode("", array(
					$sImg,
					md5_file($sImg),
					$iFilesize,
					$iMaxX,
					$iMaxY,
					$bCrop,
					$bExpand)));
	} else {
		$sMD5 = md5(implode("", array(
					$sImg,
					$iFilesize,
					$iMaxX,
					$iMaxY,
					$bCrop,
					$bExpand)));		
	}
	
	return $sMD5;
}

/**
 * capiImgScaleLQ: Scales (or crops) an image.
 * If scaling, the aspect ratio is maintained.
 *
 * Returns the path to the scaled temporary image.
 *
 * Note that this function does some very poor caching;
 * it calculates an md5 hash out of the image plus the
 * maximum X and Y sizes, and uses that as the file name.
 * If the file is older than 10 minutes, regenerate it.
 *
 * @param $img string The path to the image (relative to the frontend)
 * @param $maxX int The maximum size in x-direction
 * @param $maxY int The maximum size in y-direction
 * @param $crop boolean If true, the image is cropped and not scaled.
 * @param $expand boolean If true, the image is expanded (e.g. really scaled).
 *                        If false, the image will only be made smaller. 
 * @param $cacheTime int The number of minutes to cache the image  
 *
 * @return string Path to the resulting image
 */
function capiImgScaleLQ ($img, $maxX, $maxY, $crop = false, $expand = false, $cacheTime = 10)
{
	global $cfgClient, $lang, $client;

	$filename = $img;
	$defaultCacheTime = $cacheTime;
	
	$filetype = substr($filename, strlen($filename) -4,4);
	$filesize = filesize($img);
	$md5 = capiImgScaleGetMD5CacheFile($img, $maxX, $maxY, $crop, $expand);
	
	/* Create the target file names for web and server */
	$cfileName = $md5.".jpg";
	$cacheFile = $cfgClient[$client]["path"]["frontend"]."cache/".$cfileName;
	$webFile = $cfgClient[$client]["path"]["htmlpath"]."cache/".$cfileName;
	
	/* Check if the file exists. If it does, check if the file is valid. */
	if (file_exists($cacheFile))
	{
		if (!function_exists("md5_file"))
		{
			if ((filemtime($cacheFile) + (60 * $defaultCacheTime)) < time())
			{
				/* Cache time expired, unlink the file */
				unlink($cacheFile);	
			} else {
				/* Return the web file name */
				return $webFile;
			}
		} else {
			return $webFile;	
		}
	}
	
	/* Get out which file we have */
	switch (strtolower($filetype))
	{
		case ".gif": $function = "imagecreatefromgif"; break;
		case ".png": $function = "imagecreatefrompng"; break;
		case ".jpg": $function = "imagecreatefromjpeg"; break;
		case "jpeg": $function = "imagecreatefromjpeg"; break;
		default: return false;
	}
	
	if (function_exists($function))
	{
		$imageHandle = @$function($filename);
	}
	
	/* If we can't open the image, return false */
	if (!$imageHandle)
	{
		return false;
	}


	$x = imagesx($imageHandle);
	$y = imagesy($imageHandle);

	
	/* Calculate the aspect ratio */	
	$aspectXY = $x / $y;
	$aspectYX = $y / $x;
	
	if (($maxX / $x) < ($maxY / $y))
	{
		$targetY = $y * ($maxX / $x);
		$targetX = round($maxX);
		
		// force wished height
		if ($targetY < $maxY)
		{
			$targetY = ceil($targetY);
		} else
		{
			$targetY = floor($targetY);
		}
		
	} else {
		$targetX = $x * ($maxY / $y);
		$targetY = round($maxY);
		
		// force wished width
		if ($targetX < $maxX)
		{
			$targetX = ceil($targetX);
		} else
		{
			$targetX = floor($targetX);
		}
	}

	if ($expand == false && (($targetX > $x) || ($targetY > $y)))
	{
		$targetX = $x;
		$targetY = $y;	
	}

	$targetX = ($targetX != 0) ? $targetX : 1;
   	$targetY = ($targetY != 0) ? $targetY : 1;
   	
	/* Create the target image with the target size, resize it afterwards. */
   if ($crop)
   {
      /* Create the target image with the max size, crop it afterwards. */
      $targetImage = imagecreate($maxX, $maxY);
      imagecopy($targetImage, $imageHandle, 0, 0, 0, 0, $maxX, $maxY);
   } else {
      /* Create the target image with the target size, resize it afterwards. */
      $targetImage = imagecreate($targetX, $targetY);
      imagecopyresized($targetImage, $imageHandle, 0, 0, 0, 0, $targetX, $targetY, $x, $y);
   }
	
	/* Output the file */
	imagejpeg($targetImage, $cacheFile);
	
	return ($webFile);
}

/**
 * capiImgScaleHQ: Scales (or crops) an image in high quality.
 * If scaling, the aspect ratio is maintained.
 *
 * Note: GDLib 2.x is required!
 *
 * Returns the path to the scaled temporary image.
 *
 * Note that this function does some very poor caching;
 * it calculates an md5 hash out of the image plus the
 * maximum X and Y sizes, and uses that as the file name.
 * If the file is older than the specified cache time, regenerate it.
 *
 * @param $img string The path to the image (relative to the frontend)
 * @param $maxX int The maximum size in x-direction
 * @param $maxY int The maximum size in y-direction
 * @param $crop boolean If true, the image is cropped and not scaled.
 * @param $cacheTime int The number of minutes to cache the image  
 *
 * @return string Path to the resulting image
 */
function capiImgScaleHQ ($img, $maxX, $maxY, $crop = false, $expand = false, $cacheTime = 10)
{
	global $cfgClient, $lang, $client;

	$filename = $img;
	$defaultCacheTime = $cacheTime;
	
	$filetype = substr($filename, strlen($filename) -4,4);
	$filesize = filesize($img);
	$md5 = capiImgScaleGetMD5CacheFile($img, $maxX, $maxY, $crop, $expand);
	
	/* Create the target file names for web and server */
	$cfileName = $md5.".jpg";
	$cacheFile = $cfgClient[$client]["path"]["frontend"]."cache/".$cfileName;
	$webFile = $cfgClient[$client]["path"]["htmlpath"]."cache/".$cfileName;
	
	/* Check if the file exists. If it does, check if the file is valid. */
	if (file_exists($cacheFile))
	{
		if (!function_exists("md5_file"))
		{
			if ((filemtime($cacheFile) + (60 * $defaultCacheTime)) < time())
			{
				/* Cache time expired, unlink the file */
				unlink($cacheFile);	
			} else {
				/* Return the web file name */
				return $webFile;
			}
		} else {
			return $webFile;	
		}
	}
	
	/* Get out which file we have */
	switch (strtolower($filetype))
	{
		case ".gif": $function = "imagecreatefromgif"; break;
		case ".png": $function = "imagecreatefrompng"; break;
		case ".jpg": $function = "imagecreatefromjpeg"; break;
		case "jpeg": $function = "imagecreatefromjpeg"; break;
		default: return false;
	}
	
	if (function_exists($function))
	{
		$imageHandle = @$function($filename); 
	}
	
	/* If we can't open the image, return false */
	if (!$imageHandle)
	{
		return false;
	}


	$x = imagesx($imageHandle);
	$y = imagesy($imageHandle);
	


	/* Calculate the aspect ratio */	
	$aspectXY = $x / $y;
	$aspectYX = $y / $x;
	
	if (($maxX / $x) < ($maxY / $y))
	{
		$targetY = $y * ($maxX / $x);
		$targetX = round($maxX);
		
		// force wished height
		if ($targetY < $maxY)
		{
			$targetY = ceil($targetY);
		} else
		{
			$targetY = floor($targetY);
		}
		
	} else {
		$targetX = $x * ($maxY / $y);
		$targetY = round($maxY);
		
		// force wished width
		if ($targetX < $maxX)
		{
			$targetX = ceil($targetX);
		} else
		{
			$targetX = floor($targetX);
		}
	}
	
	if ($expand == false && (($targetX > $x) || ($targetY > $y)))
	{
		$targetX = $x;
		$targetY = $y;	
	}	

	$targetX = ($targetX != 0) ? $targetX : 1;
   	$targetY = ($targetY != 0) ? $targetY : 1;
   	
	/* Create the target image with the target size, resize it afterwards. */
if ($crop)
   {
      /* Create the target image with the max size, crop it afterwards. */
      $targetImage = imagecreatetruecolor($maxX, $maxY);
      imagecopy($targetImage, $imageHandle, 0, 0, 0, 0, $maxX, $maxY);
   } else {
      /* Create the target image with the target size, resize it afterwards. */
      $targetImage = imagecreatetruecolor($targetX, $targetY);
      imagecopyresampled($targetImage, $imageHandle, 0, 0, 0, 0, $targetX, $targetY, $x, $y);
   }
	
	/* Output the file */
	imagejpeg($targetImage, $cacheFile);
	
	return ($webFile);
}

/**
 * capiImgScaleImageMagick: Scales (or crops) an image using ImageMagick.
 * If scaling, the aspect ratio is maintained.
 *
 * Note: ImageMagick is required!
 *
 * Returns the path to the scaled temporary image.
 *
 * Note that this function does some very poor caching;
 * it calculates an md5 hash out of the image plus the
 * maximum X and Y sizes, and uses that as the file name.
 * If the file is older than the specified cache time, regenerate it.
 *
 * @param $img string The path to the image (relative to the frontend)
 * @param $maxX int The maximum size in x-direction
 * @param $maxY int The maximum size in y-direction
 * @param $crop boolean If true, the image is cropped and not scaled.
 * @param $cacheTime int The number of minutes to cache the image  
 *
 * @return string Path to the resulting image
 */
function capiImgScaleImageMagick ($img, $maxX, $maxY, $crop = false, $expand = false, $cacheTime = 10)
{
	global $cfgClient, $lang, $client;

	$filename = $img;
	$defaultCacheTime = $cacheTime;
	
	$filetype = substr($filename, strlen($filename) -4,4);
	$filesize = filesize($img);
	$md5 = capiImgScaleGetMD5CacheFile($img, $maxX, $maxY, $crop, $expand);
	
	/* Create the target file names for web and server */
	$cfileName = $md5.".jpg";
	$cacheFile = $cfgClient[$client]["path"]["frontend"]."cache/".$cfileName;
	$webFile = $cfgClient[$client]["path"]["htmlpath"]."cache/".$cfileName;
	
	/* Check if the file exists. If it does, check if the file is valid. */
	if (file_exists($cacheFile))
	{
		if (!function_exists("md5_file"))
		{
			if ((filemtime($cacheFile) + (60 * $defaultCacheTime)) < time())
			{
				/* Cache time expired, unlink the file */
				unlink($cacheFile);	
			} else {
				/* Return the web file name */
				return $webFile;
			}
		} else {
			return $webFile;	
		}
	}

	list($x, $y) = getimagesize($filename);	

	/* Calculate the aspect ratio */	
	$aspectXY = $x / $y;
	$aspectYX = $y / $x;
	
	if (($maxX / $x) < ($maxY / $y))
	{
		$targetY = $y * ($maxX / $x);
		$targetX = round($maxX);
		
		// force wished height
		if ($targetY < $maxY)
		{
			$targetY = ceil($targetY);
		} else
		{
			$targetY = floor($targetY);
		}
		
	} else {
		$targetX = $x * ($maxY / $y);
		$targetY = round($maxY);
		
		// force wished width
		if ($targetX < $maxX)
		{
			$targetX = ceil($targetX);
		} else
		{
			$targetX = floor($targetX);
		}
	}
	
	if ($expand == false && (($targetX > $x) || ($targetY > $y)))
	{
		$targetX = $x;
		$targetY = $y;	
	}
	
	$targetX = ($targetX != 0) ? $targetX : 1;
   	$targetY = ($targetY != 0) ? $targetY : 1;	

	// if is animated gif resize first frame
	if ($filetype == ".gif")
    {
		if (isAnimGif($filename))
        {
			$filename .= "[0]";
        }
    }

	/* Try to execute convert */
	if ($crop)
	{
		exec ("convert -gravity center -quality 75 -crop {$maxX}x{$maxY}+1+1 \"$filename\" $cacheFile", $output, $retVal);
	} else {
		exec ("convert -quality 75 -geometry {$targetX}x{$targetY} \"$filename\" $cacheFile", $output, $retVal );
	}

	if (!file_exists($cacheFile))
	{
		return false;
	}
	
	return ($webFile);
}

/**
 * check if gif is animated
 *
 * @param string file path
 *
 * @return boolean true (gif is animated)/ false (single frame gif)
 */
function isAnimGif($sFile)
{
	$output = array();

	exec('identify ' . $sFile, $output, $retval);
	
	if (count($output) == 1)
	{
		return false;
	}
	
	return true;	
}

/**
 * capiImgScale: Scales (or crops) an image.
 * If scaling, the aspect ratio is maintained.
 *
 * This function chooses the best method to scale, depending on
 * the system environment and/or the parameters.
 *
 * Returns the path to the scaled temporary image.
 *
 * Note that this function does some very poor caching;
 * it calculates an md5 hash out of the image plus the
 * maximum X and Y sizes, and uses that as the file name.
 * If the file is older than 10 minutes, regenerate it.
 *
 * @param $img string The path to the image (relative to the frontend)
 * @param $maxX int The maximum size in x-direction
 * @param $maxY int The maximum size in y-direction
 * @param $crop boolean If true, the image is cropped and not scaled.
 * @param $expand boolean If true, the image is expanded (e.g. really scaled).
 *                        If false, the image will only be made smaller. 
 * @param $cacheTime int The number of minutes to cache the image  
 * @param $wantHQ boolean If true, try to force high quality mode
 *
 * @return string Path to the resulting image
 */
function capiImgScale ($img, $maxX, $maxY, $crop = false, $expand = false, $cacheTime = 10, $wantHQ = false)
{
	global $client, $db, $cfg, $cfgClient;
	
	$deleteAfter = false;
	
	if (!file_exists($img))
	{
		/* Try with upload string */
		if (file_exists($cfgClient[$client]["upl"]["path"].$img) && !is_dir($cfgClient[$client]["upl"]["path"].$img))
		{
			$img = $cfgClient[$client]["upl"]["path"].$img;
		} else {
    		/* DBFS-Based file */
    		if (is_dbfs($img))
    		{
    			$dbfs = new DBFSCollection;
    			
    			$file = basename($img);
    			
    			$dbfs->writeToFile($img, $cfgClient[$client]["path"]["frontend"]."cache/".$file);
    			
    			$img = $cfgClient[$client]["path"]["frontend"]."cache/".$file;
    			$deleteAfter = true;
    		} else {
    			/* No, it's neither in the upload directory nor in the dbfs. return. */
    			return false;
    		}
		}
			
	}
	
	$filename = $img;
	$filetype = substr($filename, strlen($filename) -4,4);
	
	$mxdAvImgEditingPosibility= checkImageEditingPosibility();
	switch ($mxdAvImgEditingPosibility)
	{
		case '1': // gd1
			$method = 'gd1';
			if (!function_exists('imagecreatefromgif') && $filetype == '.gif') 
			{
				$method = 'failure';
			}
			break;
		case '2': //gd2
			$method = 'gd2';
			if ($filetype == '.gif')
			{
				$method = 'failure';
			}
			break;
		case 'im': //imagemagick
			$method = 'im';
			break;
		case '0':
			$method = 'failure';
			break;
		default:
			$method = 'failure';
			break;
	}
	
	switch ($method)
	{
		case 'gd1':
			$return = capiImgScaleLQ($img, $maxX, $maxY, $crop, $expand, $cacheTime);	
			break;
		
		case 'gd2':
			$return = capiImgScaleHQ($img, $maxX, $maxY, $crop, $expand, $cacheTime);
			break;
		
		case 'im':
			$return = capiImgScaleImageMagick($img, $maxX, $maxY, $crop, $expand, $cacheTime);
			break;
		
		case 'failure':
        	$return = str_replace($cfgClient[$client]["path"]["frontend"], $cfgClient[$client]["path"]["htmlpath"], $img);
			break;
	}
	
	if ($deleteAfter == true)
	{
		unlink($img);
	}
	
	return $return;
					
}

/**
* check possible image editing functionality
*
* return mixed information about installed image editing extensions/tools
*/
function checkImageEditingPosibility() {

	if (isImageMagickAvailable())
	{
		return 'im';
	} else
	{
		if (extension_loaded('gd'))
		{
			if (function_exists('gd_info'))
			{
				$arrGDInformations = gd_info();
			
				if (preg_match('#([0-9\.])+#', $arrGDInformations['GD Version'], $strGDVersion))
				{
					if ($strGDVersion[0] >= '2')
					{
						return '2';
					}
					return '1';
				}
				return '1';
			}
			return '1';
		}
		return '0';
	}
	return '1';
}

?>
[/code]

Verfasst: Mi 26. Apr 2006, 21:19
von HerrB
Nö, ne?
HerrB hat geschrieben:Unter

Code: Alles auswählen

	$x = imagesx($imageHandle);
	$y = imagesy($imageHandle);
folgendes ergänzen:

Code: Alles auswählen

	if ($x <= $maxX && $y <= $maxY) {
		return str_replace($cfgClient[$client]["path"]["frontend"], $cfgClient[$client]["path"]["htmlpath"], $img);
	} else {
Und am Ende der jeweiligen Funktion noch ein einfügen.

Ungetestet.
Ein Suchen nach imagesy($imageHandle); bringt Dich zweimal in die gewünschte Zeile nach der der angegebene Code eingefügt werden muss. Für die dritte Stelle suchst Du nach list($x, $y) = getimagesize($filename); ...

Und am Ende jeder Funktion vor der letzten } noch eine } einfügen.

Sag' Bescheid, wenn's funktioniert.

Gruß
HerrB