我有一種情況,其中有一個圖像畫布,並在其上放置了多個畫布控件,並且每個畫布上可能都有多個控件(橢圓,線條等)。什麼是將所有這些畫布控件保存到一個圖像的最好/最有效的方法?我假設WritableBitmap,但這將如何與多個畫布控件一起工作?一個給定的是每個畫布將是相同的大小。將多個畫布控件另存爲silverlight/wpf中的圖像
編輯:
這是我試過的。我也嘗試過使用原始圖像的dpi,這使我獲得了微小的結果。
BitmapSource bms = (BitmapSource)this.ctlImage.Source;
Matrix m = PresentationSource.FromVisual(this.ctlImgCanvas).CompositionTarget.TransformToDevice;
RenderTargetBitmap rtb = new RenderTargetBitmap(bms.PixelWidth, bms.PixelHeight, m.M11 * 96.0, m.M22 * 96.0, PixelFormats.Pbgra32);
rtb.Render(this.ctlImgCanvas);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
encoder.Save(memStream);
這適用於WPF。我最終使用ImageTools進行Silverlight。 – PhilBrown 2012-03-15 17:26:59
RenderTargetBitmap只會與PixelFormats.Pbgra32一起構建,而我的圖像最終是正確的高度和寬度,但實際圖像在圖像的左上角收縮。任何想法爲什麼? – PhilBrown 2012-03-15 18:30:26
顯示您的代碼。你使用什麼編碼器? – NVM 2012-03-16 13:14:55