我有四捨五入的圖像的角上的以下代碼:FabricJS - 從圖像中刪除筆畫用於保存
$scope.startRoundedCorners = function(e) {
if ($rootScope.activePanel === 'round') return;
$rootScope.openPanel('round', e);
$scope.rect = new fabric.Rect({
width: canvas.original.width,
height: canvas.original.height,
rx: $scope.radius,
ry: $scope.radius,
opacity: 1,
fill: 'transparent',
name: 'rounding-rect',
stroke: '#fff',
strokeDashArray: [5, 5],
selectable: false,
evented: false,
ignore: true,
});
canvas.fabric.add($scope.rect);
canvas.fabric.renderAll();
};
$scope.adjustPreview = function() {
if (! $scope.rect) return;
$scope.rect.set({
rx: $scope.radius, ry: $scope.radius
});
canvas.fabric.renderAll();
};
$scope.apply = function() {
$rootScope.editorCustomActions.roundCorners = angular.copy($scope.radius);
canvas.fabric.remove($scope.rect);
canvas.zoom(1);
canvas.fabric.clipTo = function(ctx) {
$scope.rect.render(ctx);
canvas.fabric.clipTo = false;
};
var data = canvas.fabric.toDataURL(); //canvas.getDataURL();
canvas.fabric.clear();
$scope.cancel();
的問題是,所定義的行程也呈現給最終圖像。我希望在保存之前刪除筆畫,筆畫僅用於預覽。我試圖在Apply函數的開頭添加$scope.rect.setStrokeWidth(0);
,但沒有效果。
有什麼辦法從圖像中刪除所有「用戶指示器」,並且只保存沒有所有額外筆劃的純圖像?
謝謝先進。
謝謝,我剛試過在$ scope.apply = function(){'後面加上它,但是沒有效果。保存的圖像仍然是虛線輪廓。 – nfsmaniac
這應該在創建圖像之前完成,因此在canvas.fabric.toDataURL()之前完成( – shershen
)即使這樣也沒有幫助。當然試圖清除瀏覽器的緩存。 – nfsmaniac