【问题标题】:Save Controls.Image to PDF with more than 1 Control.Image使用超过 1 个 Control.Image 将 Controls.Image 保存为 PDF
【发布时间】:2012-07-03 15:22:05
【问题描述】:

我来这里是为了解决一个未解决的小问题。也许我没有找到合适的东西,因为我没有找到解决方案,希望你能提供帮助。

所以我有一个加载图像的 WPF 应用程序,在这里我没有问题。接下来我必须通过点击添加一些点,所以我有这个功能:

 private void ClickMouse(object sender, MouseButtonEventArgs e)
    {
        Point p = e.GetPosition(this);
        schema.PointFromScreen(p);
        var myImage3 = new Image();
        var bi3 = new BitmapImage();
        bi3.BeginInit();
        bi3.UriSource = new Uri(_clickImagePath, UriKind.Relative);
        bi3.EndInit();
        myImage3.Stretch = Stretch.Fill;
        myImage3.Source = bi3;
        myImage3.MinWidth = 30;
        myImage3.MinHeight = 30;
        myImage3.Width = 30;
        myImage3.Height = 30;
        myImage3.Name = _pointName;
        var oMargin = new Thickness(p.X, p.Y, 0, 0);
        myImage3.Margin = oMargin;
        mainCanva.Children.Add(myImage3);
        _listImg.Add(myImage3);
        PointList.Items.Add(_pointName);
    }

问题不在这里,但我需要一个上下文。

现在谈谈主要问题。我必须保存最终图像才能制作 PDF。我使用我在这里找到的一段示例代码 (http://stackoverflow.com/questions/1824989/how-to-store-system-windows-controls-image-to-local-disk) 使用转换为 jpg 文件ITextsharp。我在 PDF 上唯一的东西是第一张图片,所以我承认它可能只需要第一张图片而不是其他创建的图片,但我真的不知道如何修复它。是否存在一些功能来制作图像区域的屏幕截图?或者可能要注意主体 Control.Image 区域中的所有图像?

感谢您的帮助。

【问题讨论】:

    标签: wpf image controls save


    【解决方案1】:

    您应该使用以下代码将 Canvas 呈现为图像:

    var rect = new Rect(canvas.RenderSize);
    var rtb = new RenderTargetBitmap((int)rect.Right, (int)rect.Bottom, 96d, 96d, System.Windows.Media.PixelFormats.Default);
    rtb.Render(canvas);
    //encode as PNG
    varpngEncoder = new PngBitmapEncoder();
    pngEncoder.Frames.Add(BitmapFrame.Create(rtb));
    
    //save to memory stream
    using(var ms = new System.IO.MemoryStream())
    {
        pngEncoder.Save(ms);
    
        System.IO.File.WriteAllBytes("logo.png", ms.ToArray());
    }
    

    (来源:Write WPF output to image file

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      相关资源
      最近更新 更多