我一直在用 C# 处理这个项目,处理用 ClearCanvas 在 C# 中打开一个 dicom 图像,我有这个无法修复的重复出现的错误。我的代码如下
enter
private void pictureBox1_Click(object sender, EventArgs e)
{
string filename = @"C:\Users\Don jar\Pictures\Xray pics\fluro.dcm";
DicomFile dicomFile = new DicomFile(filename);
dicomFile.Load(DicomReadOptions.Default);
foreach (DicomAttribute attribute in dicomFile.DataSet)
{
Console.WriteLine("Tag: {0}, Value: {1}", attribute.Tag.Name, attribute.ToString());
}
int bitsPerPixel = dicomFile.DataSet.GetAttribute(DicomTags.BitsStored).GetInt32(0, 0);
int width = dicomFile.DataSet.GetAttribute(DicomTags.Columns).GetInt32(0, 0);
int height = dicomFile.DataSet.GetAttribute(DicomTags.Rows).GetInt32(0, 0);
int stride = width * 2;
byte[] bitmapBuffer = (byte[])dicomFile.DataSet.GetAttribute(DicomTags.PixelData).Values;
BitmapSource bitmapSource = BitmapImage.Create(width, height, 96, 96, System.Windows.Media.PixelFormats.Gray16, null, bitmapBuffer, stride);
image1.Source = bitmapSource;
}code here
我在最后一行收到错误
image1.Source = bitmapSource;
该错误指出
错误 1 当前上下文中不存在名称“image1”。
然而,在做了一些研究之后,我读到我必须创建一个在 XAML 中定义的图像控件,我将在该页面上显示 Dicom 图像。因此它应该是这种格式
enter <Window x:Class="WpfImageTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Image Name="image1" />
</Grid>code
</Window>
后面有代码
enter public MainWindow()
{
InitializeComponent();
// Create source
BitmapImage myBitmapImage = new BitmapImage();
// BitmapImage.UriSource must be in a BeginInit/EndInit block
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"E:\Pictures\avatar.jpg");
myBitmapImage.DecodePixelWidth = 200;
myBitmapImage.EndInit();
//set image source
image1.Source = myBitmapImage;
}code here
我的问题是如何将它合并到我的项目中,我添加了 XAML 作为参考,现在我不知道如何进一步进行。我是否将此代码合并到我的 cs 文件中或构建一个完整的 cs 文件。我将不胜感激任何信息。我非常感谢你