2013-05-15 14 views
13

Cercando di creare
Passo 1 - Consenti agli utenti di caricare immagini tramite Ajax, Raphael e Raphael freetransform.unione immagini da Raphael svg

Passaggio 2 - Fare clic sul pulsante per visualizzare un'immagine da unire le immagini di caricamento. (Domanda): ho trovato post simile su Convert Raphael svg 1 2 3,
quindi sto usando Canvg troppo ma ottenere console.log: Resource interpreted as image but transferred with MIME type text/htmlerror: image "" not found.

Per favore aiutami a trovare come risolverlo. o qualsiasi idea su come raggiungere lo stesso obiettivo (convertire diverse immagini di Raphael svg da caricare in un png/jpeg) in altro modo?

Grazie!

Fase 1

// upload images and ajax show in page 
var paper = Raphael($('.upload_img')[0], 400, 200); 
$('.upload_btn').click(function(){ 
    ... 
    $.ajax({ 
     type: "POST", 
     url: "index.php", 
     data: fd, 
     processData: false, 
     contentType: false, 
     success: function(html){ 
      var session = ..., file = ... type = ...; 
      function register(el) { 
       // toggle handle 
      }; 
      var img = new Image(); 
      img.onload = function(){ 
       var r_img = paper.image('img/product/tmp/'+session+'/'+file+type, 0, 0, 200, 200); 
       register(r_img); 
      }; 
      img.src = 'img/product/tmp/'+session+'/'+file+type; 
     } 
    }); 
}); 

Fase 2

// merge and show 
$('.merge_btn').click(function(){ 
    var upload_svg = $('.upload_img').html(); 
    canvg('canvas', upload_svg); 
    console.log('upload_svg'+upload_svg); //<svg height="200" version="1.1" width="400" xmlns="http://www.w3.org/2000/svg" style="overflow-x: hidden; overflow-y: hidden; position: relative; "><desc></desc><defs></defs><image x="0" y="0" width="200" height="216.91973969631235" preserveAspectRatio="none" href="img/product/tmp/bc4d26ceb620852db36074d351883539/6.jpeg"></image></svg> 
    // and get error 
}); 


// These code If toggle show Raphael freetransform svg handle, it is work convert several svg handle to one image. but still not found upload image to merge 
+2

Non so Raphael e Raphael freetransform ma l'errore sembra che qualcosa non va ** prima ** si trasforma. Sembra che non possa trovare le immagini, quindi non trasformare. Sei sicuro che le immagini vengano salvate nelle directory corrette? E potresti forse fare un jsfiddle? –

risposta

1

Se non sto confondendo canvg funzione si aspetta il secondo parametro di essere un String contenente il percorso del file di immagine. Tuttavia nella fase 2 il codice fa:

var upload_svg = $('.upload_img').html(); // **** this does not return the image path 
    canvg('canvas', upload_svg); 

Vi suggerisco di provare qualcosa di simile:

var upload_svg = $('.upload_img').attr('src'); 
    canvg('canvas', upload_svg); 

che spiegherà l'errore - Resource interpreted as image but transferred with MIME type text/html - si aspetta un'immagine, ma riceve in bianco HTML. Il resto del codice sembra a posto.

+0

Hai avuto fortuna? –