【问题标题】:getting image src in fabricjs在fabricjs中获取图像src
【发布时间】:2022-04-17 00:59:34
【问题描述】:

嗨,我正在使用织物 js 来调整图像大小和拖放。现在我想要活动对象 src 。所以我尝试这样

 canvas.on('object:selected', function () {

        currentObject = canvas.getActiveObject();
        var imagesrc =currentObject._originalElement.currentSrc;

但结果越来越像

http://localhost:2200/Images/design/fullbar_1.svg

我只需要 fullbar_1.svg 来自这个。我如何将它与这个分开

【问题讨论】:

    标签: javascript jquery fabricjs


    【解决方案1】:

    首先将您的路径保存在一个变量中,然后拆分并获取您的文件名

    var url="http://localhost:2200/Images/design/fullbar_1.svg";
    
    var check = url.split("/");
    alert(check[check.length-1]);

    【讨论】:

      【解决方案2】:

      一个解决方案:http://locutus.io/php/url/parse_url/

      module.exports = function parse_url (str, component) { // eslint-disable-line camelcase
        //       discuss at: http://locutus.io/php/parse_url/
        //      original by: Steven Levithan (http://blog.stevenlevithan.com)
        // reimplemented by: Brett Zamir (http://brett-zamir.me)
        //         input by: Lorenzo Pisani
        //         input by: Tony
        //      improved by: Brett Zamir (http://brett-zamir.me)
        //           note 1: original by http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
        //           note 1: blog post at http://blog.stevenlevithan.com/archives/parseuri
        //           note 1: demo at http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
        //           note 1: Does not replace invalid characters with '_' as in PHP,
        //           note 1: nor does it return false with
        //           note 1: a seriously malformed URL.
        //           note 1: Besides function name, is essentially the same as parseUri as
        //           note 1: well as our allowing
        //           note 1: an extra slash after the scheme/protocol (to allow file:/// as in PHP)
        //        example 1: parse_url('http://user:pass@host/path?a=v#a')
        //        returns 1: {scheme: 'http', host: 'host', user: 'user', pass: 'pass', path: '/path', query: 'a=v', fragment: 'a'}
        //        example 2: parse_url('http://en.wikipedia.org/wiki/%22@%22_%28album%29')
        //        returns 2: {scheme: 'http', host: 'en.wikipedia.org', path: '/wiki/%22@%22_%28album%29'}
        //        example 3: parse_url('https://host.domain.tld/a@b.c/folder')
        //        returns 3: {scheme: 'https', host: 'host.domain.tld', path: '/a@b.c/folder'}
        //        example 4: parse_url('https://gooduser:secretpassword@www.example.com/a@b.c/folder?foo=bar')
        //        returns 4: { scheme: 'https', host: 'www.example.com', path: '/a@b.c/folder', query: 'foo=bar', user: 'gooduser', pass: 'secretpassword' }
      
        var query
      
        var mode = (typeof require !== 'undefined' ? require('../info/ini_get')('locutus.parse_url.mode') : undefined) || 'php'
      
        var key = [
          'source',
          'scheme',
          'authority',
          'userInfo',
          'user',
          'pass',
          'host',
          'port',
          'relative',
          'path',
          'directory',
          'file',
          'query',
          'fragment'
        ]
      
        // For loose we added one optional slash to post-scheme to catch file:/// (should restrict this)
        var parser = {
          php: new RegExp([
            '(?:([^:\\/?#]+):)?',
            '(?:\\/\\/()(?:(?:()(?:([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?))?',
            '()',
            '(?:(()(?:(?:[^?#\\/]*\\/)*)()(?:[^?#]*))(?:\\?([^#]*))?(?:#(.*))?)'
          ].join('')),
          strict: new RegExp([
            '(?:([^:\\/?#]+):)?',
            '(?:\\/\\/((?:(([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?))?',
            '((((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)'
          ].join('')),
          loose: new RegExp([
            '(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?',
            '(?:\\/\\/\\/?)?',
            '((?:(([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?)',
            '(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))',
            '(?:\\?([^#]*))?(?:#(.*))?)'
          ].join(''))
        }
      
        var m = parser[mode].exec(str)
        var uri = {}
        var i = 14
      
        while (i--) {
          if (m[i]) {
            uri[key[i]] = m[i]
          }
        }
      
        if (component) {
          return uri[component.replace('PHP_URL_', '').toLowerCase()]
        }
      
        if (mode !== 'php') {
          var name = (typeof require !== 'undefined' ? require('../info/ini_get')('locutus.parse_url.queryKey') : undefined) || 'queryKey'
          parser = /(?:^|&)([^&=]*)=?([^&]*)/g
          uri[name] = {}
          query = uri[key[12]] || ''
          query.replace(parser, function ($0, $1, $2) {
            if ($1) {
              uri[name][$1] = $2
            }
          })
        }
      
        delete uri.source
        return uri
      }
      

      【讨论】:

        【解决方案3】:

        我知道我在这里迟到了,但您可以使用获取图片网址

        activeObject.getSrc()
        

        【讨论】:

          猜你喜欢
          • 2018-06-06
          • 1970-01-01
          • 2021-07-14
          • 1970-01-01
          • 2019-05-14
          • 1970-01-01
          • 1970-01-01
          • 2011-10-20
          • 2013-02-10
          相关资源
          最近更新 更多