我正在尝试使用pdfium查看器将pdf导出为jpeg。如何指定jpeg图像的颜色深度?我必须使用System.Drawing.Imaging来编辑这个流吗?有没有人知道用pdfium这样做的方法?https://github.com/pvginkel/PdfiumViewer是我用来渲染pdf和创建图像的工具。
using (var document = PdfiumViewer.PdfDocument.Load(file.ToString()))
{
for (int page = 0; page < document.PageCount; page++)
{
var image = document.Render(page, 2550, 3300, 72, 72, false);
image.Save(filepath + "\\" + filename + "-" + (page + 1) + ".jpg", ImageFormat.Jpeg);
}
}发布于 2019-10-05 08:23:10
必须设置图像编码器属性才能更改它们。这是从头到尾的展示,但解释了我正在寻找的东西。
using System;
using System.Drawing;
using System.Drawing.Imaging;
class Example_SetColorDepth
{
public static void Main()
{
Bitmap myBitmap;
ImageCodecInfo myImageCodecInfo;
Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
// Create a Bitmap object based on a BMP file.
myBitmap = new Bitmap(@"C:\Documents and Settings\All Users\Documents\My Music\music.bmp");
// Get an ImageCodecInfo object that represents the TIFF codec.
myImageCodecInfo = GetEncoderInfo("image/tiff");
// Create an Encoder object based on the GUID
// for the ColorDepth parameter category.
myEncoder = Encoder.ColorDepth;
// Create an EncoderParameters object.
// An EncoderParameters object has an array of EncoderParameter
// objects. In this case, there is only one
// EncoderParameter object in the array.
myEncoderParameters = new EncoderParameters(1);
// Save the image with a color depth of 24 bits per pixel.
myEncoderParameter =
new EncoderParameter(myEncoder, 24L);
myEncoderParameters.Param[0] = myEncoderParameter;
myBitmap.Save("Shapes24bpp.tiff", myImageCodecInfo, myEncoderParameters);
}
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for(j = 0; j < encoders.Length; ++j)
{
if(encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
}https://stackoverflow.com/questions/58242774
复制相似问题