Неожиданное изменение размера растрового изображения при загрузке в svg-edit

Это довольно специфичный для проекта вопрос, связанный с моей реализацией svg-edit ..

Я реализовал обновленный ext-server_opensave.js (из эта проблема), чтобы пользователь мог загружать растровые изображения из своей файловой системы.

Фрагмент кода, с которым у меня возникла проблема, из ext-server_opensave.js выглядит следующим образом:

    function importImage(url) {
        var newImage = svgCanvas.addSvgElementFromJson({
            "element": "image",
            "attr": {
                "x": 0,
                "y": 0,
                "width": 0,
                "height": 0,
                "id": svgCanvas.getNextId(),
                "style": "pointer-events:inherit"
            }
        });
        svgCanvas.clearSelection();
        svgCanvas.addToSelection([newImage]);
        svgCanvas.setImageURL(url);
    }

Атрибуты ширины и высоты не работают при их установке, другие атрибуты работают. Это странная ошибка - при первой загрузке изображения файл загружается в исходном размере, а затем при каждой последующей загрузке изображения изменяется размер до 48x48. Если я установил значения ширины и высоты в том методе, который я вставил выше, я вижу изображение в этих размерах в течение доли секунды, а затем его размер снова изменяется до 48x48. По сути, в цепочке есть какой-то обработчик / метод, который изменяет размер изображения после svgCanvas.addSvgElementFromJson и svgCanvas.addToSelection, и я не могу понять, где, после нескольких часов отладки javascript.


person user982119    schedule 12.10.2012    source источник


Ответы (1)


Просто дикий выстрел, но, возможно, добавление в строке 128 ...

case 'import_img':
        svgCanvas.setGoodImage(str64);
        importImage(str64);
        break;

setGoodImage() устанавливает размер изображения по умолчанию при вставке новых изображений. Размер 48x48, который вы видите, - это размер логотипа SVG Edit.

person methodofaction    schedule 13.10.2012