對不起,如果標題是誤導性的,它是我可以想出的最接近的近似值,哈哈。FabricJS - 性能線程
好吧,所以我使用FabricJS作爲面料打印客戶端的概念驗證,並且它們需要300PPI圖像(即,巨大的怪異)。現在,如果你檢查了我在下面彈出的JsFiddle,你會看到平鋪是用一些似乎工作正常的while循環完成的,除了整個瀏覽器在加載時凍結的事實,這意味着我甚至不能粘裝載機圖標。
我做了一些可怕的錯誤,或者只是覺得它是如何工作的?只要我能夠a)安裝一個裝載機,b)它不會,呃,「他已經死了,吉姆!」我的Chrome。如果有幫助,我會用base64獲取圖像。
大家歡呼!
編輯爲背景,這裏有從上傳的文件創建模式的功能之一:
function renderMirror(){
showLoader();
var isFullRows = false;
var rowIndex = 0;
var totalHeight = 0;
while(isFullRows == false){
// let's start with filling up the row's columns. start the width at zero.
var totalWidth = 0;
var isFullCols = false;
var colIndex = 0;
if(rowIndex % 2){
var isRowMirrored = false;
}else{
var isRowMirrored = true;
}
while(isFullCols == false){
colIndex++
if(rowIndex == 1){
console.log('row');
}
if(totalWidth >= canvas.width){
isFullCols = true;
}
if(colIndex % 2){
var isColMirrored = false;
}else{
var isColMirrored = true;
}
canvas.add(new fabric.Rect({
left: totalWidth,
top: totalHeight,
fill: pattern,
flipX: isColMirrored,
flipY: isRowMirrored,
height: newImgHeight,
width: newImgWidth,
selectable: false
}));
totalWidth+= newImgWidth;
// safeguard
if(colIndex > 100){
isFullCols = true;
}
}
// now instantiate the row.
rowIndex++;
if(totalHeight >= canvas.height){
isFullRows = true;
}
totalHeight+= newImgHeight;
// safeguard
if(rowIndex > 100){
isFullRows = true;
}
}
hideLoader();
}
整個事情是here,如果你想有一個適當的看一下嗎?
我在這篇文章中做了一個失誤?不太確定爲什麼這是downvoted。 – MitchEff
在鏈接中沒有小提琴,請添加一些代碼,不要強迫人們打開小提琴或將小提琴轉換爲片段。 – AndreaBogazzi