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,7 +162,7 @@ namespace ICSharpCode.CodeQualityAnalysis
{ {
var fileDialog = new SaveFileDialog() 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(); fileDialog.ShowDialog();
@ -170,32 +170,43 @@ namespace ICSharpCode.CodeQualityAnalysis
if (String.IsNullOrEmpty(fileDialog.FileName)) if (String.IsNullOrEmpty(fileDialog.FileName))
return; 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 // render it
var renderBitmap = new RenderTargetBitmap((int) size.Width, var renderBitmap = new RenderTargetBitmap((int)graphLayout.ActualWidth,
(int) size.Height, (int)graphLayout.ActualHeight,
96d, 96d,
96d, 96d,
PixelFormats.Pbgra32); PixelFormats.Default);
renderBitmap.Render(graphLayout); renderBitmap.Render(graphLayout);
using (var outStream = new FileStream(fileDialog.FileName, FileMode.Create)) using (var outStream = new FileStream(fileDialog.FileName, FileMode.Create))
{ {
// for now only PNG BitmapEncoder encoder;
var encoder = new PngBitmapEncoder();
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.Frames.Add(BitmapFrame.Create(renderBitmap));
encoder.Save(outStream); encoder.Save(outStream);
} }
graphLayout.LayoutTransform = transform;
} }
private class MetricTreeViewItem : TreeViewItem private class MetricTreeViewItem : TreeViewItem

Loading…
Cancel
Save