bug snapshot function capiImgScaleLQ

Gesperrt
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

bug snapshot function capiImgScaleLQ

Beitrag von emergence »

da ich mich mit einem neuen projekt auseinandersetze hab ich mir die
functions.api.images.php etwas angesehen...

wirklich ein sehr brauchbares grundgerüst

jedoch bei

function capiImgScaleLQ

findet sich

Code: Alles auswählen

$imageHandle = @$function($filename); break;
das break; hat da nichts verloren, da es nicht in einer switch case anweisung steckt...
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ebenso ne nützliche änderung

das intressante bei der funktion ist das einige sehr nützliche funktionen enthalten sind, die weiter aufgesplittet werden sollten...
bei einer erweiterung um eigene funktionen wären folgende teile ebenso bei anderen funktionen brauchbar... doppelter code zahlt sich nicht aus...

ne eigene funktion sollte sein:

Code: Alles auswählen

	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);
	}
ebenso

Code: Alles auswählen

	if (!is_file($img))
	{
		/* Try with upload string */
		if (is_file($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);

    			//echo "write to file from $img to ".$cfgClient[$client]["path"]["frontend"]."cache/".$file;
    			$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;
    		}
		}

	}
und

Code: Alles auswählen

	switch ($mxdAvImgEditingPosibility)
	{
		case '1': // gd1
			$method = 'gd1';
			if (!function_exists('imagecreatefromgif') && $filetype == '.gif')
			{
				$method = 'failure';
			}
			break;
		case '2': //gd2
			$method = 'gd2';
			if ($filetype == '.gif')
			{
				$arrGDInformations = gd_info();
				if (!$arrGDInformations['GIF Create Support'])
				{
					$method = 'failure';
				}
			}
			break;
		case 'im': //imagemagick
			$method = 'im';
			break;
		case '0':
			$method = 'failure';
			break;
		default:
			$method = 'failure';
			break;
	}
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

besser wäre es eigentlich, wenn man das ganze in eine Klasse auslagern würde - aber soweit sind wir leider noch nicht

Den Bug lasse ich mal offen, der muß selbstverfreilich noch gefixt werden.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

alles klar...

ich bau mir die sachen momentan entsprechend um

die erste auslagerung sieht momentan bei mir so aus:

Code: Alles auswählen

/**
* check image editing method
*
* return string $method
*/
function checkImageEditingMethod($filetype) {

	$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')
			{
				$arrGDInformations = gd_info();
				if (!$arrGDInformations['GIF Create Support'])
				{
					$method = 'failure';
				}
			}
			break;
		case 'im': //imagemagick
			$method = 'im';
			break;
		case '0':
			$method = 'failure';
			break;
		default:
			$method = 'failure';
			break;
	}

	return $method;
}
der aufruf dafür sieht nur mehr so aus:

Code: Alles auswählen

    $method = checkImageEditingMethod($filetype);
ich hoffe der name für die funktion ist so in ordnung ;-)
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

da ist mir noch ne idee gekommen die ich eigentlich recht praktisch finden würde...

momentan ist es so das immer eine datei im ordner cache erstellt wird...
es wäre doch ganz praktisch nen parameter zu haben der die orginal datei ersetzen würde...

nur so als vorschlag...
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ja das hatten wir auch schonmal, aber dann müßte man noch mehrere Dinge berücksichtigen....z.b. das Format muß gleich bleiben...

und die Parameteranzahl wird solangsam aber sicher ziemlich unkomfortabel ;)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

das mit die parameter stimmt ;-)

->

Code: Alles auswählen

function capiImgScale ($img, $maxX, $maxY, $crop = false, $expand = false, $cacheTime = 10, $wantHQ = false)
ähm das $wantHQ = false
kann rausfliegen, da es nicht verwendet wird... einer weniger...
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

ok, beide Änderungen sind drin.
Gesperrt