Browse Source

Images can be saved in more formats. Removed measuring which was transforming graph.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6059 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Tomáš Linhart 15 years ago
parent
commit
9265c94a7c
  1. 45
      src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs

45
src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs

@ -162,40 +162,51 @@ namespace ICSharpCode.CodeQualityAnalysis @@ -162,40 +162,51 @@ namespace ICSharpCode.CodeQualityAnalysis
{
var fileDialog = new SaveFileDialog()
{
Filter = "PNG Image (*.png)|*.png"
Filter = "PNG (*.png)|*.png|JPEG (*.jpg)|*.jpg|GIF (*.gif)|*.gif|BMP (*.bmp)|*.bmp|TIFF (.tiff)|*.tiff"
};
fileDialog.ShowDialog();
if (String.IsNullOrEmpty(fileDialog.FileName))
return;
var transform = graphLayout.LayoutTransform;
graphLayout.LayoutTransform = null;
// calculate size
var size = new Size(graphLayout.ActualWidth, graphLayout.ActualHeight);
graphLayout.Measure(size);
graphLayout.Arrange(new Rect(size));
// render it
var renderBitmap = new RenderTargetBitmap((int) size.Width,
(int) size.Height,
var renderBitmap = new RenderTargetBitmap((int)graphLayout.ActualWidth,
(int)graphLayout.ActualHeight,
96d,
96d,
PixelFormats.Pbgra32);
PixelFormats.Default);
renderBitmap.Render(graphLayout);
using (var outStream = new FileStream(fileDialog.FileName, FileMode.Create))
{
// for now only PNG
var encoder = new PngBitmapEncoder();
BitmapEncoder encoder;
switch (fileDialog.FilterIndex)
{
case 1:
encoder = new PngBitmapEncoder();
break;
case 2:
encoder = new JpegBitmapEncoder();
break;
case 3:
encoder = new GifBitmapEncoder();
break;
case 4:
encoder = new BmpBitmapEncoder();
break;
case 5:
encoder = new TiffBitmapEncoder();
break;
default:
encoder = new PngBitmapEncoder();
break;
}
encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
encoder.Save(outStream);
}
graphLayout.LayoutTransform = transform;
}
private class MetricTreeViewItem : TreeViewItem

Loading…
Cancel
Save