c#如何wmf图片转换成png图片_C# PDF转图片(Png/Bmp/Emf/Tiff)

(二)PDF转Tiff

【C#】

using System;

using System.Drawing;

using System.Drawing.Imaging;

using Spire.Pdf;

namespace SavePdfAsTiff

{

class Program

{

static void Main(string[] args)

{

//创建一个PdfDocument类对象,并加载PDF文档

PdfDocument document = new PdfDocument();

document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");

//调用方法SaveAsImage()将PDF文档保存为tiff格式

JoinTiffImages(SaveAsImage(document), "result.tiff", EncoderValue.CompressionLZW);

System.Diagnostics.Process.Start("result.tiff");

}

//自定义方法SaveAsImage()将PDF文档保存图像文件

private static Image[] SaveAsImage(PdfDocument document)

{

Image[] images = new Image[document.Pages.Count];

for (int i = 0; i < document.Pages.Count; i++)

{

images[i] = document.SaveAsImage(i);

}

return images;

}

private static ImageCodecInfo GetEncoderInfo(string mimeType)

{

ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();

for (int j = 0; j < encoders.Length; j++)

{

if (encoders[j].MimeType == mimeType)

return encoders[j];

}

throw new Exception(mimeType + " mime type not found in ImageCodecInfo");

}

//自定义JoinTiffImages()方法,使用指定编码器和图像编码器参数将图像从pdf页面保存到tiff图像类型,。

public static void JoinTiffImages(Image[] images, string outFile, EncoderValue compressEncoder)

{

Encoder enc = Encoder.SaveFlag;

EncoderParameters ep = new EncoderParameters(2);

ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);

ep.Param[1] = new EncoderParameter(Encoder.Compression, (long)compressEncoder);

Image pages = images[0];

int frame = 0;

ImageCodecInfo info = GetEncoderInfo("image/tiff");

foreach (Image img in images)

{

if (frame == 0)

{

pages = img;

pages.Save(outFile, info, ep);

}

else

{

ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);

pages.SaveAdd(img, ep);

}

if (frame == images.Length - 1)

{

ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);

pages.SaveAdd(ep);

}

frame++;

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值