为什么此示例TIFF导入代码会导致错误?

时间:2019-04-10 03:32:50

标签: c# decode tiff

我读了How to: Encode and Decode a TIFF Image并复制了代码

// Open a Stream and decode a TIFF image
Stream imageStreamSource = new FileStream("tulipfarm.tif", FileMode.Open, 
FileAccess.Read, FileShare.Read);
TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, 
BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource = decoder.Frames[0];

// Draw the Image
Image myImage = new Image();
myImage.Source = bitmapSource;
myImage.Stretch = Stretch.None;
myImage.Margin = new Thickness(20);

进入Visual Studio 2017中的控制台应用程序。我为https://stackoverflow.com/a/50192029/9044571添加了对PresentationCore的引用,这使我可以添加

using System.Windows.Media.Imaging;

但是现在我遇到了与该行关联的错误(错误CS0144无法创建抽象类或接口“ Image”的实例)

Image myImage = new Image();

我该如何解决?问题可能是我正在通过控制台应用程序执行此操作吗?

1 个答案:

答案 0 :(得分:0)

原因是,您实际上是针对{em>抽象

System.Drawing.Image class

固定为:-

  1. 删除错误的命名空间

  2. 使用命名空间别名

Namespace Aliases

  

using指令还可以用于创建别名   命名空间。例如,如果您使用的是先前编写的   包含嵌套名称空间的名称空间,您可能需要声明   别名,提供一种特别的方式来引用,   如下例所示:

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken();
    for (int i = 0; i < Model.Count(); i++)
    {
        @Html.DropDownListFor(model => model.ElementAt(i).PickedNormId, Model.ElementAt(i).PickableNorms, "NA", htmlAttributes: new
        {
            @class = "form-control dropdown_search",
            Name = "normPickerViewModel[" + i + "].PickedNormId"@*, @onchange = "this.form.submit();"*@ 
        })
    }
    <div>
        <input name="selectedNormList" type="submit">
    </div>
}
  1. 明确针对正确的目标

    insert into Table3 (idTable1, idTable2) select idTable1, idTable2 from Table1 cross join Table2 except select idTable1, idTable2 from Table3