2010-06-16 13 views
6

Nach dem Auswählen oder Hochladen eines Bildes mit dem ckfinder kann der Benutzer die Breite und Höhe ändern. Ich möchte, dass das Bild automatisch an die Breite und Höhe angepasst wird, die der Benutzer einstellt. Ist das möglich?ckfinder image resize

Ich dachte, dass der Ajax-Bildresizer das beheben würde, aber es nicht zur Arbeit bringen kann. Jemand hat Erfahrung mit einem automatischen Breiten- und Höhenresize-Plugin?

In meiner config-Datei von CKFinder ich habe:

include_once "plugins/imageresize/plugin.php"; 

in den config.js ich habe:

CKFinder.customConfig = function(config) 
{ 
config.extraPlugins = 'imageresize'; 
}; 

Antwort

3

In der Vergangenheit habe ich eine vordefinierte Ändern Sie den Wert automatisch in einen bestimmten Ordner in ckFinder, so dass die Größe eines Bildes, das ein Benutzer in diesen Ordner hochlädt, geändert wird. Ich tun, dass durch einen kleinen Code in die config.php-Datei wie folgt ergänzt:

// This next block sets the default max image size and quality 
$config['Images'] = Array(
     'maxWidth' => 1600, 
     'maxHeight' => 1200, 
     'quality' => 80); 

// Here we override those settings for a given folder 
if(isset($_GET['currentFolder']) && urldecode($_GET['currentFolder']) == '/some-folder-name/'){ 
    $config['Images']['maxWidth'] = 150; 
    $config['Images']['maxHeight'] = 150; 
} 

Ich würde vermuten, dass Sie eine ähnliche Kerbe tun könnte, vielleicht $ _SESSION Werten. Lassen Sie Ihren Benutzer die Werte für die automatische Größenänderung auswählen, die er benötigt, und speichern Sie ihn in seinem $ _SESSION. Suchen Sie dann in Ihrer Konfigurationsdatei nach diesem Sitzungswert. Etwas wie:

if(isset($_SESSION['resize_w']) && isset($_SESSION['resize_h'])){ 
    $config['Images']['maxWidth'] = $_SESSION['resize_w']; 
    $config['Images']['maxHeight'] = $_SESSION['resize_h']; 
} 

Beachten Sie, dass Sie session_start() in Ihrer Datei config.php aufrufen müssen, wenn Sie nicht bereits haben.

0

Ckeditor skaliert das Bild nicht, es ändert nur den Wert für Höhe und Breite. Anstatt die Größe des Bildes zu ändern, legen Sie die Standardbreite und -höhe fest, während Sie auf "OK" klicken. Hier ersetze ich den Benutzer eingegeben Höhe & Breite Werte mit Standardhöhe & Breite.

CKEDITOR.on('dialogDefinition', function (ev) { 

    var dialogName = ev.data.name, 
     dialogDefinition = ev.data.definition; 

    if (dialogName == 'image') { 
     var onOk = dialogDefinition.onOk; 

     dialogDefinition.onOk = function (e) { 
      var width = this.getContentElement('info', 'txtWidth'); 
      width.setValue('200');//Set Default Width 

      var height = this.getContentElement('info', 'txtHeight'); 
      height.setValue('200');//Set Default height 

      onOk && onOk.apply(this, e); 
     }; 
    } 
}); 
0

In der "config.ascx" Datei, um den Wert der Variablen ändern

Images.MaxWidth = 0; 
Images.MaxHeight = 0; 
Images.Quality = 100;