2個的TIFF圖像在我的情況,我有在不同位置處的兩個TIFF圖像中說合併使用C#.NET
c:/temp/img1.tiff
和x:/temp/img2.tiff
。
我需要將這些圖像合併爲一個圖像編程
提出了一些想法/代碼。
感謝,
開發
2個的TIFF圖像在我的情況,我有在不同位置處的兩個TIFF圖像中說合併使用C#.NET
c:/temp/img1.tiff
和x:/temp/img2.tiff
。
我需要將這些圖像合併爲一個圖像編程
提出了一些想法/代碼。
感謝,
開發
可能有幾種方法可以 「合併」 的圖像。這裏有一對夫婦在僞代碼:
var NewImage = new Image();
ForEach (curPixel in img1)
{
var newColor = new Color();
newColor.RGB = (Pixel.Color.RGB + img2.PixelAt(curPixel.Location).Color.RGB)/2
NewImage.PixelAt(curPixel.Location) = new Pixel(newColor);
}
///OR
int objCounter = 0;
ForEach (curPixel in Image)
{
if(objCounter % 2 == 0){
NewImage.PixelAt(curPixel.Location) = img1.PixelAt(curPixel.Location);
} else {
NewImage.PixelAt(curPixel.Location) = img2.PixelAt(curPixel.Location);
}
}
要做到這一點只使用框架類,你基本上做到這一點:每個TIFF圖像的
Image.FromFile
。Encoder.SaveFlag
第一頁= EncoderValue.MultiFrame
Encoder.SaveFlag
= EncoderValue.FrameDimensionPage
編碼參數相同的文件使用Bitmap.SaveAdd
()這將是這個樣子:
ImageCodecInfo tiff = null;
foreach (ImageCodecInfo codec in ImageCodecInfo.GetImageEncoders())
{
if (codec.MimeType == "image/tiff")
{
tiff = codec;
break;
}
}
Encoder encoder = Encoder.SaveFlag;
EncoderParameters parameters = new EncoderParamters(1);
parameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.MultiFrame);
bitmap1.Save(newFileName, tiff, parameters);
parameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.FrameDimensionPage);
bitmap2.SaveAdd(newFileName, tiff, paramters);
parameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.Flush);
bitmap2.SaveAdd(parameters);
我還會補充說我的公司很久以前決定購買一個工具包(在我們的例子中,我們使用LEADTools),它使用非託管GDI來處理這種類型的事情,因爲GDI +並不是框架中性能最好的部分,而且代碼變得乏味。根據您的預算限制,您可能需要考慮這一點。 –
'圖像'類沒有一個接受字符串的'SaveAdd'方法。 –
合併如何?水平/垂直連接? –
我必須一個接一個(垂直)。 – Dev
http://stackoverflow.com/questions/398388/convert-bitmaps-to-one-multipage-tiff-image-in-net-2-0 –