2016-01-13 54 views
1

如何解碼web worker中的JPEG以訪問像素數據,而不包括用於解碼JPEG的代碼(由我自己或第三方編寫),但使用內置的瀏覽器API 。在web worker中解碼JPEG


我明白,我可以呈現JPEG在主線程畫布,讀出的像素數據,並將其傳遞給工人,如果這就是我想要的,但我特別調查的可能性在工作人員中解碼JPEG。

我也明白,我可以使用第三方庫,但我想知道是否有任何內置瀏覽器可以做到這一點,因爲發送重複瀏覽器能力的代碼似乎很奇怪。

+0

你可以使用這樣的庫:https://github.com/notmasteryet/jpgjs – pinturic

+0

你到目前爲止嘗試過什麼? JPEG格式有文件記錄,並且有些庫可以處理這個問題 - 您可以通過谷歌搜索來獲取這些文件。 –

+0

@Tomáš明白有些圖書館,但是想知道在工作人員中是否有使用內置API的方法。我在這個問題上增加了這一點。 –

回答

3

tl; dr:No

編輯完成後,是否可以使用內置API(此時僅爲canvas)的問題答案是否定的。你不能在web worker中創建HTMLElement,包括canvas,因爲它們是GUI組件,大多數GUI框架拒絕在GUI線程之外允許GUI組件實例化。

這當然是非常不幸的,這意味着根本無法使用本地API(CanvasRenderingContext2D)來執行任何圖像操作。

我回答一下你的問題現在已經提出和回答:Web Workers and Canvas

我建議加入最愛更新這個問題 - 我希望,以及在未來的圖像處理將有可能在網絡工作者。

+0

感謝您的回答。只是爲了澄清,這個問題並不完全是我問的問題......他們問是否可以從網絡工作者訪問畫布,如果可能的話,會給出* a *瀏覽器API,您可以在其中解碼JPEG。我問(知道你不能訪問畫布),如果在工作人員可以解碼JPEG的地方有*任何*瀏覽器API。 –

+0

答案仍然不是。瀏覽器中唯一的圖像操作API可以通過'canvas.getContext'訪問。如果你已經通過答案更徹底地閱讀了,你會看到[明確提到Web工作者將來使用圖像處理API的可能性](http://stackoverflow.com/a/1864774/607407)。但現在,答案是否定的,您可以在我的答案中提供詳細信息,作爲答案的獎勵。 –

+0

我也明確指出canvas只是我意識到的圖像處理API,所以我不明白爲什麼你進一步問*如果在解碼JPEG的工作人員中有任何瀏覽器API可用* - 我想我不可能更清楚的是沒有這樣的API。如果你打算再次提出同樣的問題,你只是不會得到不同的答案,對不起。 –