public override void DrawImage(Image img, RectangleF rect) { string tmpPath = TmpManager.GetTmpDir() + "\\tmp.jpg"; img.GdiBitmap.Save(tmpPath); XImage bmp = XImage.FromFile(tmpPath); //XImage bmp = XImage.FromGdiPlusImage(img.GdiBitmap); g.DrawImage(bmp, rect); bmp.Dispose(); }
private void btnOk_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; List <int> pageIndexes = new List <int>(); for (int i = 0; i < lvPages.Items.Count; i++) { if (lvPages.Items[i].Checked) { pageIndexes.Add(i); } } /*Bitmap[] bmps = MupdfSharp.PageRenderer.Render(path, PAGETHEIGHTPIXEL, pageIndexes.ToArray()); * for(int i = 0; i < bmps.Length; i++) * { * Bitmap tmp = bmps[i]; * bmps[i] = tmp.MakeBackgroundTransparent(Color.White); * tmp.Dispose(); * }*/ if (!Directory.Exists(TmpManager.GetTmpDir() + "\\render")) { Directory.CreateDirectory(TmpManager.GetTmpDir() + "\\render"); } Pages = new KPage[pageIndexes.Count]; pdf.PdfDocument pdfdoc = pdf_io.PdfReader.Open(path, pdf_io.PdfDocumentOpenMode.Modify | pdf_io.PdfDocumentOpenMode.Import); for (int i = 0; i < pageIndexes.Count; i++) { int p = pageIndexes[i]; KPage page = new KPage(KDocument.EmptyDocument); pdf.PdfPage pPage = pdfdoc.Pages[p]; float w = (float)pPage.Width.Millimeter; float h = (float)pPage.Height.Millimeter; if (pPage.Rotate == 90 || pPage.Rotate == 270) { Util.Swap(ref w, ref h); } page.Format = new PageFormat(w, h); page.Background = null; page.ShowDate = false; page.OriginalPage = pPage; /*page.BackgroundImage * = new Renderer.Image(bmps[i]);*/ page.PdfRenderPath = TmpManager.NewFilename(TmpManager.GetTmpDir() + "\\render", "page", ".png"); Pages[i] = page; } pdfdoc.Close(); }