さまざまな画像ファイルから PDF を作成する方法を知っています (「imagePaths」は .jpg、「fileNameFullPath」は .pdf))
https://github.com/dlemstra/Magick.NET/blob/main/docs/ConvertPDF.md
public void CreatePDF(string[] imagePaths)
{
using (var collection = new MagickImageCollection())
{
// Add first page
collection.Add(new MagickImage(imagePaths[0]));
// Add second page
collection.Add(new MagickImage(imagePaths[1]));
// Create pdf file with two pages
collection.Write("out.pdf");
}
}
これは完全に機能しますが、ビットマップで試してみると
public void CreatePDF(Bitmap bitmap)
{
using (var collection = new MagickImageCollection())
{
var m = new MagickFactory();
MagickImage image = new MagickImage(m.Image.Create(bitmap));
image.Format = MagickFormat.Jpg;
image.Quality = 60;
image.Write("test.jpg");
collection.Add(image);
collection.Write("test.pdf", MagickFormat.Pdf);
}
}
奇妙なことが起こります:
- 「test.jpg」(サイズを確認するためだけに作成)は正しく圧縮されています(52 kb)
- 「test.pdf」は圧縮されていません (2000 kb)
.jpg に保存すると圧縮が発生するようです。イメージを保存して再ロードせずに圧縮する方法はありますか?