1
複数ページのTIFF画像を複数ページのXPS文書に変換しようとしています。私が持っている問題は、TiffBitmapDecoderとそのBitmapFramesです。TiffBitmapDecoderからTIFFページを取得できません。フレーム - すべてのフレームが1ページです。
は、ここでは、コードです:
private static void ToXpsDocument(string imageName, string xpsName)
{
using (var p = Package.Open(xpsName))
{
PackageStore.AddPackage(new Uri("pack://thedocloljk.xps"), p);
XpsDocument doc = new XpsDocument(p);
var writer = XpsDocument.CreateXpsDocumentWriter(doc);
var dec = new TiffBitmapDecoder
(new Uri(imageName),
BitmapCreateOptions.IgnoreImageCache,
BitmapCacheOption.None);
var fd = new FixedDocument();
foreach (var frame in dec.Frames)
{
var image = new System.Windows.Controls.Image();
image.Source = frame;
var fp = new FixedPage();
fp.Children.Add(image);
fp.Width = frame.Width;
fp.Height = frame.Height;
var pc = new PageContent();
(pc as IAddChild).AddChild(fp);
fd.Pages.Add(pc);
}
writer.Write(fd);
p.Flush();
p.Close();
PackageStore.RemovePackage(new Uri("pack://thedocloljk.xps"));
}
}
これは、ページの正しい数とXPSになります。しかし、すべてのページはtiffの最初のページの複製です。実際に、1つのフレーム(たとえばdec.Frames [4])を取り出してディスクに書き込むと、最初のページのように見えます。
私はここで間違っていますか?フレームは実際にイメージの個々のページではありませんか?どのように私はそれらを取得し、それらと仕事をすることができますか?
はこれをチェックアウトします。 – Will