GUI'de bir görüntü ve uygulanmış SVG filtreleri görüntüliyorum. Şimdi benim gereksinim bu değiştirilmiş görüntüyü (SVG filtresiyle) ikili ya da base64'e dönüştürerek kaydetmek. Tuvali kullanarak dönüştürmeyi denedim. Ama bunu başaramadı. Şimdiye kadar denediğim şey buydu. Devam etmek için bazı ipuçları verebilir.SVG filtresi uygulanmış görüntüyü arka plana kaydetmek için ikili veya base64'e dönüştürme
<div class="item active filtered" data-slide-number="0">
<svg style="overflow: hidden; height: 637px; width: 546px;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events">
<defs>
<filter id="svgBlur" width="110%" height="110%">
<feComponentTransfer id="bFilter">
<feFuncR id="brightness1" class="brgt" type="linear" slope="2"></feFuncR>
<feFuncG id="brightness2" class="brgt" type="linear" slope="1"></feFuncG>
<feFuncB id="brightness3" class="brgt" type="linear" slope="1"></feFuncB>
</feComponentTransfer>
<feComponentTransfer id="cFilter">
<feFuncR id="contrast1" class="cnst" type="linear" slope="1" intercept="-0.01"></feFuncR>
<feFuncG id="contrast2" class="cnst" type="linear" slope="1" intercept="-0.01"></feFuncG>
<feFuncB id="contrast3" class="cnst" type="linear" slope="1" intercept="-0.01"></feFuncB>
</feComponentTransfer>
<feComponentTransfer id="gFilter">
<feFuncR id="gamma1" class="gama" type="gamma" amplitude="1" exponent="1" offset="0"></feFuncR>
<feFuncG id="gamma2" class="gama" type="gamma" amplitude="1" exponent="1" offset="0"></feFuncG>
<feFuncB id="gamma3" class="gama" type="gamma" amplitude="1" exponent="1" offset="0"></feFuncB>
</feComponentTransfer>
<feColorMatrix id="saturation" type="saturate" values="1"></feColorMatrix>
</filter>
</defs>
<g id="viewport-20160404045307934" class="svg-pan-zoom_viewport" transform="matrix(1.011111111111111,0,0,1.011111111111111,2.52222222222224,0)">
<image xlink:href="https://www.ricoh.com/r_dc/caplio/r7/img/sample_03.jpg" class="img-responsive" width="90%" id="imageStyling" height="630px" style="height: 630px; width: 536px;" filter="url(#svgBlur)" name="ipsDF14-2-29Feb16-9d80-1a94a2e8c121"></image>
</g>
</svg>
</div>
<button id="save">Save</button>
<canvas id="canvas"></canvas>
$(document).ready(function() {
var btn = document.querySelector('button');
var svg = document.querySelector('svg');
var canvas = document.querySelector('canvas');
$("#save").click(function() {
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var data = (new XMLSerializer()).serializeToString(svg);
var DOMURL = window.URL || window.webkitURL || window;
var img = new Image();
var svgBlob = new Blob([data], {
type: 'image/svg+xml;charset=utf-8'
});
var url = DOMURL.createObjectURL(svgBlob);
alert(JSON.stringify(url));
})
});
Detaylı yazdığınız için çok teşekkür ederim. Seçenek 3'ü seçmek için gidiyor. Mutlu kodlama :) – Nofi
Seçenek 1 için [bu komut dosyası] (https://github.com/Kaiido/SVG2Bitmap) yazılabilir, erişilebilir harici kaynakların çoğunu işleyecek ve bunu svg'ye geri uygula. tuvale çizilmiş. Yine de, IE
Kaiido