我試圖用code by Bob Powell以從現有圖片的多頁TIFF文件:生成多頁TIFF不工作
picture.SelectActiveFrame(FrameDimension.Page, 0);
var image = new Bitmap(picture);
using (var stream = new MemoryStream())
{
ImageCodecInfo codecInfo = null;
foreach (var imageEncoder in ImageCodecInfo.GetImageEncoders())
{
if (imageEncoder.MimeType != "image/tiff") continue;
codecInfo = imageEncoder;
break;
}
var parameters = new EncoderParameters
{
Param = new []
{
new EncoderParameter(Encoder.SaveFlag, (long) EncoderValue.MultiFrame)
}
};
image.Save(stream, codecInfo, parameters);
parameters = new EncoderParameters
{
Param = new[]
{
new EncoderParameter(Encoder.SaveFlag, (long) EncoderValue.FrameDimensionPage)
}
};
for (var i = 1; i < picture.GetFrameCount(FrameDimension.Page); i++)
{
picture.SelectActiveFrame(FrameDimension.Page, i);
var img = new Bitmap(picture);
image.SaveAdd(img, parameters);
}
parameters = new EncoderParameters
{
Param = new[]
{
new EncoderParameter(Encoder.SaveFlag, (long)EncoderValue.Flush)
}
};
image.SaveAdd(parameters);
stream.Flush();
}
但它不工作(僅限第一幀包含在圖像中)和我不知道爲什麼。
我想要做的是更改TIFF文件的特定幀(添加註釋)。
我不知道是否有一個更簡單的方法來做到這一點,但我想到的是從原始圖片創建一個多頁TIFF並添加我自己的圖片,而不是該幀。
請解釋「它不工作」。發生了什麼,什麼失敗了,你會得到什麼錯誤(如果有的話)? – 2010-01-24 14:19:07
它只產生一個圖像對象,只有第一幀沒有添加其他幀。 – Beatles1692 2010-01-24 14:32:33
當我嘗試它時,你的代碼工作正常。你是否確認源圖像有多個頁面?你是否正確保存了MemoryStream? – 2010-01-24 15:35:42