簡體   English   中英

C#WPF System.Drawing.Image到System.Windows.Media.Imaging.BitmapSource

[英]C# WPF System.Drawing.Image to System.Windows.Media.Imaging.BitmapSource

我使用spire.pdf庫將pdf文件轉換為圖片,請通過文檔中提供的代碼來完成。 生成PDF文件到圖像,因為他希望它們打印,而PDF文件本身無法打印(我的意思是打印機)

 public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();


            Spire.Pdf.PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("sample.pdf");

            BitmapSource source;
            Bitmap bmp;

            for (int i = 1; i < pdf.Pages.Count+1; i++)
            {
                source = pdf.SaveAsImage(i);
                bmp = SourceToBitmap(source);
                bmp.Save(string.Format("result-{0}.png", i), ImageFormat.Png);
            }
        }

        private Bitmap SourceToBitmap(BitmapSource source)
        {
            Bitmap bmp;
            using (MemoryStream ms = new MemoryStream())
            {
                PngBitmapEncoder encoder = new PngBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(source));
                encoder.Save(ms);
                bmp = new Bitmap(ms);
            }
            return bmp;
        }
    }

我的包括:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Spire.Pdf;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Media.Imaging;
using System.IO;

但我從source = pdf.SaveAsImage(i);收到錯誤source = pdf.SaveAsImage(i);

Error   1   Cannot implicitly convert type 'System.Drawing.Image' to 'System.Windows.Media.Imaging.BitmapSource'    c:\users\łukasz\documents\visual studio 2013\Projects\WpfApplication5\WpfApplication5\MainWindow.xaml.cs    39  26  WpfApplication5

顯然PdfDocument.SaveAsImage返回一個System.Drawing.Image ,因此您不需要執行任何WPF到WinForms位圖轉換。

這應該足夠了:

var source = pdf.SaveAsImage(i);
source.Save(string.Format("result-{0}.png", i), ImageFormat.Png);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM