キャンバスに画像を追加するコードを次に示します。これは、SVG ファイルをローカルの [root]/uploads フォルダーにアップロードする Uploadify のインスタンスを作成することです。次に、その画像をサイズの異なる 3 つのキャンバスに広告します。http:// アドレスを使用して画像が参照されることはありません。画像パスへのすべての参照はローカル相対です。
var folder = '/uploads';
var fullpath = folder + '/' + $('input#canonical').val() + ".svg";
$('#file_upload').uploadify({
'uploader': '/uploadify/uploadify.swf',
'script': '/uploadify/uploadify.php',
'cancelImg': '/uploadify/cancel.png',
'folder': folder,
'fileExt': '*.svg',
'fileDesc': 'SVG files',
'scriptData': {'rename': $('input#canonical').val() + ".svg"},
'onAllComplete': function(){
$('#upload-wrap').hide();
var img = new Image();
img.onload = function(){
var ar = img.width / img.height;
var swidth = ( ar >= 1 ) ? small : small * ar;
var mwidth = ( ar >= 1 ) ? medium : medium * ar;
var lwidth = ( ar >= 1 ) ? large : large * ar;
var sheight = ( ar <= 1 ) ? small : small / ar;
var mheight = ( ar <= 1 ) ? medium : medium / ar;
var lheight = ( ar <= 1 ) ? large : large / ar;
var sc = sCanvas.getContext('2d');
var mc = mCanvas.getContext('2d');
var lc = lCanvas.getContext('2d');
scObj.css({width:swidth, height: sheight});
mcObj.css({width:mwidth, height: mheight});
lcObj.css({width:lwidth, height: lheight});
sc.drawImage(img,0,0,swidth,sheight);
mc.drawImage(img,0,0,mwidth,mheight);
lc.drawImage(img,0,0,lwidth,lheight);
};
img.src = fullpath;
}
});
canvas.toDataUrl() を呼び出そうとするとUncaught Error: SECURITY_ERR: DOM Exception 18
、コンソールで問題が発生します。これを修正する方法はありますか?さらに情報が必要な場合はお知らせください。