这是我将关注的代码片段
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;