有人对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