現在、.NETを使用して複数ページのTIFFを別々のJPEG/PNGに分割しています。独自のプロセスは完璧です。しかし数週間後、私はページサイズの大きな欠点に気付きました。分割した各ページは、TIFF文書全体を結合したものと同じです(幅/高さではなくファイルサイズ)。 TIFFが表示されると、画像の右/下に大量の黒い点ができます。これは非常に大きな欠陥です。なぜなら、各ページの物理的な大きさを区別することができないからです。私が前もって知っていれば、少なくとも何らかの作付メカニズムを書くことができます。どんな助言も高く評価されます。複数ページのTIFFを別々のページに分割する
System.IO.Stream s =
new System.IO.MemoryStream(imageData);
System.Drawing.Image i =
System.Drawing.Image.FromStream(s);
int NumberOfFrames = i.GetFrameCount(System.Drawing.Imaging.FrameDimension.Page);
List<byte[]> imageCollection = new List<byte[]>();
for (int f = 0; f < NumberOfFrames; f++)
{
i.SelectActiveFrame(System.Drawing.Imaging.FrameDimension.Page, f);
Bitmap b = new Bitmap(i.Width, i.Height);
Graphics g = Graphics.FromImage(b);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Default;
g.DrawImageUnscaled(i, 0, 0);
g.Dispose();
imageCollection.Add((byte[])System.ComponentModel.TypeDescriptor.GetConverter(b).ConvertTo(b, typeof(byte[])));
}
return imageCollection;
TiffBitmapDecoderは役に立ちますか? http://stackoverflow.com/questions/3398881/extract-frame-from-multi-page-tiff-c-sharp –
でこれを使用する例があります。試していることに対して「描画」が起こってはいけませんする。生データは、デコード/描画/再エンコードすることなく個々のファイルに再パッケージ化することができます。これはおそらくあなたが使用している高水準言語の制限です。あなたはコーデックを必要とせず、TIFFタグを操作する必要もないので、単にIFDリストを歩き、ファイルを分解して、新しいタグの中で(相対ではないので)各タグのオフセットをリセットするだけですファイル。 – BitBank
私はbitmiracle.comからLibTiff.NETをダウンロードしました。それは私が探している機能を持っているように見えます。それがどうなるか見てみましょう。私は上記の混乱を傷つけ、すべてがうまくいくならばLibTiffを使わなければならないかもしれません。投稿され続ける。 – Shrini