【发布时间】:2017-07-07 20:53:01
【问题描述】:
我有这个项目,其中一项要求是在画布中自定义和设计上传的图像 .因此,通过自定义,我将上传一张图片,选择它,然后我想用所选颜色更改或着色颜色。但是我不知道怎么做。
var canvas = new fabric.Canvas('canvas');
var clearEl = document.getElementById('clear');
var reset = document.getElementById('Reset');
clearEl.onclick = function ()
{
canvas.clear()
};
reset.onclick = function () {
window.location.reload();
};
document.getElementById('file').addEventListener("change", function (e) {
var file = e.target.files[0];
var reader = new FileReader();
console.log("reader " + reader);
reader.onload = function (f) {
var data = f.target.result;
fabric.Image.fromURL(data, function (img) {
var oImg = img.set({ left: 70, top: 100, width: 250, height: 200, angle: 0 }).scale(0.9);
canvas.add(oImg).renderAll();
canvas.setActiveObject(oImg);
});
};
reader.readAsDataURL(file);
});
$('#fill').change(function () {
var obj = canvas.getActiveObject();
if (obj) {
obj.setFill($(this).val());
}
canvas.renderAll();
});
$('#font').change(function () {
var obj = canvas.getActiveObject();
if (obj) {
obj.setFontFamily($(this).val());
}
canvas.renderAll();
});
function addText() {
var oText = new fabric.IText('Tap and Type', {
left: 100,
top: 100,
});
canvas.add(oText);
canvas.setActiveObject(oText);
$('#fill, #font').trigger('change');
oText.bringToFront();
}
document.querySelector('#txt').onclick = function (e) {
e.preventDefault();
canvas.deactivateAll().renderAll();
document.querySelector('#preview').src = canvas.toDataURL();
};
$("#saveImg").click(function(){
$("#canvas").get(0).toBlob(function(blob){
saveAs(blob, uuidv4());
});
});
canvas{
border:1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.min.js"></script>
<input type="file" id="file">
<input type="color" value="blue" id="fill" />
<input type="checkbox" id=tint />
Tint:
<input type="color" value="blue" id="fillimage" />
<select id="font">
<option>arial</option>
<option>tahoma</option>
<option>times new roman</option>
</select>
<button onclick="addText(); return false;">Add Custom Text</button>
<input type="button" value="Clear Canvas" id="clear" />
<input type="button" value="Reset" id="Reset" />
<input type="button" id="saveImg" value="Save Image"/>
<br />
<canvas id="canvas" width="600" height="400"></canvas>
<br />
<a href='' id='txt' target="_blank">Preview Image</a>
<br />
<img id="preview" />
【问题讨论】:
标签: javascript html canvas html5-canvas fabricjs