有人對Tiff文件操作有經驗(使用BitMiracle.LibTiff.NET)?Tiff操作多線程C#
我需要使用多個線程來修改大圖像以獲得更好的性能。
在圖像計算圖像的掩蔽用於創建2倍的正和負掩模不同勢的圖像(例如像的操作):
buffer2[y][x] = (byte)(buffer[y][x] & maskBuffer[y % maskTiffHeight][x % (maskTiffWidth * tiffBpp/8)]);
任何提示?
謝謝
丹
有人對Tiff文件操作有經驗(使用BitMiracle.LibTiff.NET)?Tiff操作多線程C#
我需要使用多個線程來修改大圖像以獲得更好的性能。
在圖像計算圖像的掩蔽用於創建2倍的正和負掩模不同勢的圖像(例如像的操作):
buffer2[y][x] = (byte)(buffer[y][x] & maskBuffer[y % maskTiffHeight][x % (maskTiffWidth * tiffBpp/8)]);
任何提示?
謝謝
丹
我嘗試,而且似乎工作:
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)]);
});
});
感謝您的答覆伯恩哈德。
丹
容易壞運氣對你:Windows提供的位圖操作功能(可能由庫所使用的地方在後臺)不與多個線程運行。
爲了提高性能,您應該使用(單線程)非託管的代碼。
如果我在多位圖對象中分割tiff圖像我不能這樣做? – Dan
你能告訴我一個例子嗎?我使用非常大的圖像和遮罩,我必須等待很多時間才能完成操作。 – Dan