Używam Raphaela do narysowania obiektu, a następnie przeniesienia go do elementu canvas HTML za pomocą canvg, dzięki czemu mogę użyć doDataURL, aby zapisać go jako PNG. Ale kiedy używam canvg, wynikowy obraz jest zamazany. Kod poniżej, na przykład, ten sposób uzyskuje się (Raphael na górze, na dole canvg)Kanwa generowana przez canvg jest rozmazana na ekranie siatkówki
<html>
<head>
<script src="lib/raphael-min.js"></script>
<script type="text/javascript" src="http://canvg.googlecode.com/svn/trunk/rgbcolor.js"></script>
<script type="text/javascript" src="http://canvg.googlecode.com/svn/trunk/StackBlur.js"></script>
<script type="text/javascript" src="http://canvg.googlecode.com/svn/trunk/canvg.js"></script>
<script src="lib/raphael.export.js"></script>
</head>
<body>
<div id="raph_canvas"></div><br>
<canvas id="html_canvas" width="50px" height="50px"></canvas>
<script language="JavaScript">
var test=Raphael("raph_canvas",50,50);
var rect=test.rect(0,0,50,50);
rect.attr({fill: '#fff000', 'fill-opacity':1, 'stroke-width':1})
window.onload = function() {
var canvas_svg = test.toSVG();
canvg('html_canvas',canvas_svg);
var canvas_html = document.getElementById("html_canvas");
}
</script>
</body>
</html>
efekt rozmazania jest widoczna w PNG utworzonej przez toDataURL również. Masz pojęcie, co tu się dzieje? Nie sądzę, żeby miało to coś wspólnego z ponownym dopasowaniem. Próbowałem ustawić ignoreDimensions: True i kilka innych rzeczy.
Kolejny punkt danych. Jeśli użyję raphael do wypisania jakiegoś tekstu, a następnie użycia canvg, to jest nie tylko rozmazany, ale także niewłaściwa czcionka!
A oto test.rect (0.5,0.5,50,50) sugeruje. Nadal rozmyte:
Wydaje być mniej rozmyte, jeśli prostokąt jest dość duży. Poza tym nie dowiedziałem się wiele. – AustinC
Bez przeprowadzania jakichkolwiek testów zastanawiam się, jaki jest wynik, gdy szerokość obrysu wynosi 2 piksele. Założę się, że masz do czynienia z problemem półpiksela. – ericjbasti
Jak wygląda kod toDataURL? Upewnij się, że nie jest ustawiony na JPEG. Pliki JPEG są zasysane do grafiki liniowej. – ericjbasti