InkCanvas内容为Image和IText

时间:2014-10-07 11:09:41

标签: c# wpf itextsharp inkcanvas

这是我将关注的代码片段

int Width = (int)InkControl.ActualWidth, Height = (int)InkControl.ActualHeight;
InkControl.Background = Brushes.White;
var Renderer = new RenderTargetBitmap(Width, Height, 96d, 96d, PixelFormats.Default);
System.Drawing.Bitmap SignImage = null;
using (MemoryStream OutStream = new MemoryStream())
{
    Renderer.Render(InkControl);
    var Encoder = new JpegBitmapEncoder();
    Encoder.QualityLevel = 100;
    Encoder.Frames.Add(BitmapFrame.Create(Renderer));
    Encoder.Save(OutStream);
    SignImage = new System.Drawing.Bitmap(OutStream);
}

一切都很好,在SignImage我保存了我的图片。无论如何,当我调整大小(保持比例但减小大小)时,它变得非常像素化和可怕。 有没有办法避免这种情况并使用适当的比例来调整图像大小?

在此之后,我必须使用iTextSharp将此图像放入PDF的签名外观中,之后它再次失去解决方案,成为一个真正无法识别的特征。

我使用.NET 4.5和Visual Studio 2013在Windows 7中进行开发。 该应用程序必须部署在Windows 8的Window Surface设备中。

这是iText代码的片段

PdfSignatureAppearance SignAppearence = SignStamper.SignatureAppearance;
var rect = new iTextSharp.text.Rectangle(left, bottom, left + signImage.Width, bottom + signImage.Height);
SignAppearence.SetVisibleSignature(rect, page, fieldName: SignAppearence.GetNewSigName());
SignAppearence.SignatureGraphic = iTextSharp.text.Image.GetInstance(signImage, ImageFormat.Jpeg);
SignAppearence.SignatureRenderingMode = PdfSignatureAppearance.RenderingMode.GRAPHIC;

0 个答案:

没有答案