这是用于将多页 tiff 文件转换为一页 jpeg 的 asp.net 源。
我曾经使用 MemoryStream 类,然后转换为 jpeg。
这是在 Windows 2005、IIS6、Visual Studio 2008 和 .NET Framework 2.0 中。
MemoryStream ms = null;
Image SrcImg = null;
Image returnImage = null;
try
{
SrcImg = Image.FromFile(@'d:\\test.tif');
ms = new MemoryStream();
FrameDimension FrDim = new FrameDimension(SrcImg.FrameDimensionsList[0]);
SrcImg.SelectActiveFrame(FrDim, 17); // 17 page...
SrcImg.Save(ms, ImageFormat.Tiff);
// Prevent using images internal thumbnail
SrcImg.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
SrcImg.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
//Save Aspect Ratio
if (SrcImg.Width <= ImgWidth) ImgWidth = SrcImg.Width;
int NewHeight = SrcImg.Height * ImgWidth / SrcImg.Width;
if (NewHeight > ImgHeight)
{
// Resize with height instead
ImgWidth = SrcImg.Width * ImgHeight / SrcImg.Height;
NewHeight = ImgHeight;
}
returnImage = Image.FromStream(ms).GetThumbnailImage(ImgWidth, NewHeight, null, IntPtr.Zero); }
但此代码在 Windows 2008、IIS7、Visual Studio 2010 和 .NET Framework 4.0 中运行良好。
错误删除“ SelectActiveFrame ”语句。
这是示例 tiff 文件。 [鼠标右键-另存为“test.tif”]
怎么了?或任何好的解决方案?