Simplified toSvgString() in JavaScript code.

pull/35/merge
Project Nayuki 7 years ago
parent 1a5207ece3
commit 236efbeccd

@ -169,27 +169,20 @@ var qrcodegen = new function() {
this.toSvgString = function(border) { this.toSvgString = function(border) {
if (border < 0) if (border < 0)
throw "Border must be non-negative"; throw "Border must be non-negative";
var result = '<?xml version="1.0" encoding="UTF-8"?>\n'; var parts = [];
result += '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n';
result += '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 ' +
(size + border * 2) + ' ' + (size + border * 2) + '" stroke="none">\n';
result += '\t<rect width="100%" height="100%" fill="#FFFFFF"/>\n';
result += '\t<path d="';
var head = true;
for (var y = -border; y < size + border; y++) { for (var y = -border; y < size + border; y++) {
for (var x = -border; x < size + border; x++) { for (var x = -border; x < size + border; x++) {
if (this.getModule(x, y)) { if (this.getModule(x, y))
if (head) parts.push("M" + (x + border) + "," + (y + border) + "h1v1h-1z");
head = false;
else
result += " ";
result += "M" + (x + border) + "," + (y + border) + "h1v1h-1z";
}
} }
} }
result += '" fill="#000000"/>\n'; return '<?xml version="1.0" encoding="UTF-8"?>\n' +
result += '</svg>\n'; '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n' +
return result; '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 ' +
(size + border * 2) + ' ' + (size + border * 2) + '" stroke="none">\n' +
'\t<rect width="100%" height="100%" fill="#FFFFFF"/>\n' +
'\t<path d="' + parts.join(" ") + '" fill="#000000"/>\n' +
'</svg>\n';
}; };

Loading…
Cancel
Save