2017-07-14 62 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