2012-04-28 90 views
0

我想將大圖分割成多個較小的圖像,然後對這些較小的圖像執行一些數據處理。第二部分沒有問題,因爲我可以將數據傳遞給網絡工作人員,但圖像的分割使用畫布(因此不需要網絡工作人員),並且在運行時使頁面的其餘部分無響應。操縱畫布時防止無響應

這真的不是問題,除非加載動畫暫停,使其毫無意義。

在不凍結GUI的情況下執行圖像拆分畫布操作的最佳方法是什麼?

+0

分割圖像涉及哪些操作?你能把它分解成一系列的操作嗎? – 2012-04-28 13:56:52

+0

這是一個for循環,它創建一個新的畫布,將原始圖像的一部分繪製到新的畫布上,然後將生成的dataURL推送到一個數組。它實質上是將圖像分割成瓦片。 – Tom 2012-04-28 13:59:19

+0

然後,您可能可以創建一個異步隊列。看看[我的答案在這裏]的第二部分(http://stackoverflow.com/questions/5050265/javascript-nodejs-is-array-foreach-asynchronous/5050317#5050317)。 – 2012-04-28 14:01:22

回答

0

只需使用getImageData,一次只能使用較小的矩形,您的狀況會更好。

找出一個像樣的尺寸需要一些時間,但嘗試200x200和400x400的初學者。

您可以在完成處理每個5/10/15/20%圖像時更新加載動畫。