6

使用 ckfinder 选择或上传图像后,用户可以更改宽度和高度。我希望它自动将图像大小调整为用户设置的宽度和高度。那可能吗?

我认为 ajax 图像调整器可以解决这个问题,但不能让它工作。有人有使用自动宽度和高度调整大小插件的经验吗?

在我的 ckfinder 配置文件中,我有:

include_once "plugins/imageresize/plugin.php";

在 config.js 我有:

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

3 回答 3

3

过去,我在 ckFinder 中为特定文件夹预定义了自动调整大小值,以便用户上传到该文件夹​​的任何图像都被调整大小。我通过在 config.php 文件中添加一些代码来做到这一点,如下所示:

// 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;
}

我怀疑你可以做一个类似的黑客,也许使用 $_SESSION 值。让您的用户选择他们需要的自动调整大小值并将其保存在他们的 $_SESSION 中。然后在您的配置文件中,查找该会话值。就像是:

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

请注意,如果您尚未在 config.php 文件中调用 session_start(),则需要调用。

于 2012-08-10T13:55:32.790 回答
1

ckeditor 不会调整图像大小,它只会改变高度和宽度值。而不是调整图像大小,在单击“确定”按钮时设置默认宽度和高度。在这里,我将用户输入的高度和宽度值替换为默认高度和宽度。

 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);
        };
    }
});
于 2015-05-22T10:42:19.493 回答
0

在“config.ascx”文件中将变量的值更改为

Images.MaxWidth = 0; 
Images.MaxHeight = 0;
Images.Quality = 100;
于 2016-06-27T12:41:46.453 回答