首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >svg-编辑-动态设置背景

svg-编辑-动态设置背景
EN

Stack Overflow用户
提问于 2013-03-18 15:55:04
回答 2查看 1.1K关注 0票数 0

我正在考虑使用svg-edit在浏览器中注释图像。图片被上传到svg-edit所在的页面,需要在上传时动态设置为svg-edit的背景。这可以做到吗?

EN

回答 2

Stack Overflow用户

发布于 2013-11-30 00:08:33

你必须调用对象的方法,即svgCanvas.setBackground();

为此,您可以创建一个扩展名,例如: ext-backchange.js

此文件如下所示:

代码语言:javascript
复制
svgEditor.addExtension("changeback", function() {


svgCanvas.setBackground('','abc.png');

return {};
});

然后在svg-edit.js中包含此扩展名,如最后一行所示:

代码语言:javascript
复制
 svgEditor.setConfig(
{

extensions: ['ext-backchange.js']

 })
票数 1
EN

Stack Overflow用户

发布于 2014-01-15 23:37:42

您可以使用setImageBackground(imageBackground)函数

代码语言:javascript
复制
setImageBackground("image.png");

并在svgcanvas.js中添加此函数setImageBackground此图像出现在画布上,并且可以旋转。

代码语言:javascript
复制
this.setImageBackground= function(val) {

var elem = addSvgElementFromJson({
    "element": "image",
    "attr": {
        "x": ( svgcontent.getAttribute('x') - bgimg_with ) / 2,
        "y": ( svgcontent.getAttribute('y') - bgimg_height ) / 2,
        "width": bgimg_with,
        "height": bgimg_height,
        "id": 'ImgBckgd',
        "opacity": 1,
        "style": "pointer-events:inherit",
    }
});

setHref(elem, last_good_img_url);
preventClickDefault(elem);      
if(!elem) return;   
var attrs = $(elem).attr(['width', 'height']);
var setsize = (!attrs.width || !attrs.height);
var cur_href = getHref(elem);   
// Do nothing if no URL change or size change
if(cur_href !== val) {
    setsize = true;
} else if(!setsize) return;
var batchCmd = new BatchCommand("Change Image URL");
setHref(elem, val);
batchCmd.addSubCommand(new ChangeElementCommand(elem, {
    "#href": cur_href
}));
if(setsize) {
    $(new Image()).load(function() {
        var changes = $(elem).attr(['width', 'height']);        
        $(elem).attr({
            width: this.width,
            height: this.height
        });         
        selectorManager.requestSelector(elem).resize();         
        batchCmd.addSubCommand(new ChangeElementCommand(elem, changes));
        addCommandToHistory(batchCmd);
        call("changed", [elem]);
    }).attr('src',val);
} else {
    addCommandToHistory(batchCmd);
}
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15472007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档