Antwort #34 am: 11. August 2020, 21:45:26
Moin
In Shopversion 2.0.5.1 ist in /admin/includes/classes/image_manipulator_GD2_advanced.php am Ende folgender Code hinzugekommen für das Schärfen
function sharpen
() { $sharpen = false; /*
* example
*
$sharpen_arr = array(
array(-1.2, -1, -1.2),
array(-1.0, 20, -1.0),
array(-1.2, -1, -1.2)
);
// calculate the sharpen divisor
$divisor = array_sum(array_map('array_sum', $sharpen_arr));
$offest = 0;
*/ require_once(DIR_FS_INC
.'auto_include.inc.php'); foreach(auto_include
(DIR_FS_ADMIN
.'includes/extra/modules/image_sharpen/','php') as $file) require ($file); if ($sharpen === true && is_array($sharpen_arr) && count($sharpen_arr) == 3) { // sharpen the image imageconvolution($this->t, $sharpen_arr, $divisor, $offset); } } Wie wird das in 2.0.5.1 richtig angewendet, damit es funktioniert wie die Lösung von @hpzeller aus
Beitrag #14?
In
Ticket #1600 wurde von @Tomcraft als Beispiel gegeben eine Datei /admin/includes/extra/modules/image_sharpen/10_image_sharpen.php mit folgendem Inhalt zu erstellen.
<?php $sharpen_arr = array( // Default sharpen: https://www.php.net/manual/de/function.imageconvolution.php#104006 array(-1.2, -1, -1.2), array(-1.0, 20, -1.0), array(-1.2, -1, -1.2) ); $offset = 0; //$divisor = 10; if ($this->q > 1) $sharpen = true;?> 1) Wird mit dieser auto inkludierten Datei durch
if ($this->q > 1) $sharpen = true;
das
$sharpen = false;
in /admin/includes/classes/image_manipulator_GD2_advanced.php überschrieben und muss nicht manuell geändert werden und wird somit auch der Teil
// sharpen the image imageconvolution($this->t, $sharpen_arr, $divisor, $offset); ausgeführt, der in der Lösung aus diesem Beitrag enthalten ist, aber nicht in der autoinkludierten Datei?
2) Das Bsp von @Tomcraft bezieht sich scheinbar auf alle Bildergrößen. Wenn man es weiterhin nur für Bilder mit weniger als 400px Breite machen möchte, wie es hier im Thread beschrieben wurde, würde der Code der autoinkludierten Datei wie folgt richtig sein?
<?phpif ($d_w <400) { $sharpen_arr = array( // Default sharpen: https://www.php.net/manual/de/function.imageconvolution.php#104006 array(-1.2, -1, -1.2), array(-1.0, 20, -1.0), array(-1.2, -1, -1.2) ); $offset = 0; //$divisor = 10; if ($this->q > 1) $sharpen = true;}?> 3) Ich nehme an, dass
irgendwie 10 ergibt. vermutlich 9 mal Inhalt der Matrix plus 1 mal Matrix. Warum wurde das aber auskommentiert im Ticket
//$divisor = 10;
und sollte es nicht einkommentiert werden?
Gruss Timm