2017-07-14 125 views
-1

有人對Tiff文件操作有經驗(使用BitMiracle.LibTiff.NET)?Tiff操作多線程C#

我需要使用多個線程來修改大圖像以獲得更好的性能。

在圖像計算圖像的掩蔽用於創建2倍的正和負掩模不同勢的圖像(例如像的操作):

buffer2[y][x] = (byte)(buffer[y][x] & maskBuffer[y % maskTiffHeight][x % (maskTiffWidth * tiffBpp/8)]);

任何提示?

謝謝

回答

0

我嘗試,而且似乎工作:

Parallel.For(0, sourceBuffer.Length, i => 
        { 
         destbuffer[i] = new byte[sourceBuffer[i].Length]; 
         destbuffer2[i] = new byte[sourceBuffer[i].Length]; 
         Parallel.For(0, scanlineSize, y => 
         { 
          destbuffer[i][y] = (byte)(sourceBuffer[i][y] & maskBuffer[i % maskTiffHeight][y % (maskTiffWidth * tiffBpp/8)]); 
          destbuffer2[i][y] = (byte)(sourceBuffer[i][y] & ~maskBuffer[i % maskTiffHeight][y % (maskTiffWidth * tiffBpp/8)]); 
         }); 
        }); 

感謝您的答覆伯恩哈德。

0

容易壞運氣對你:Windows提供的位圖操作功能(可能由庫所使用的地方在後臺)不與多個線程運行。

爲了提高性能,您應該使用(單線程)非託管的代碼。

+0

如果我在多位圖對象中分割tiff圖像我不能這樣做? – Dan

+0

你能告訴我一個例子嗎?我使用非常大的圖像和遮罩,我必須等待很多時間才能完成操作。 – Dan