0

我找不到我使用 CLI 的那个 Image^ 类的正确命名空间。它来自该站点的http://msdn.microsoft.com/en-us/library/aa970689.aspx 。问题是微软没有公布我想导入的内容,所以我什至不知道他们在想什么课。

我想添加什么来使这项工作(图像类)?

Error   1   error C3083: 'Controls': the symbol to the left of a '::' must be a type    C:\Users\Duke\Documents\Visual Studio 2010\Projects\Jpg\Jpg\Jpg.cpp 9   1   Jpg
Error   2   error C2039: 'Image' : is not a member of 'System::Windows' C:\Users\Duke\Documents\Visual Studio 2010\Projects\Jpg\Jpg\Jpg.cpp 9   1   Jpg
Error   3   error C2871: 'Image' : a namespace with this name does not exist    C:\Users\Duke\Documents\Visual Studio 2010\Projects\Jpg\Jpg\Jpg.cpp 9   1   Jpg

    #include "stdafx.h"
    #include "Form1.h"
    #using <mscorlib.dll> //requires CLI
    using namespace System;
    using namespace System::IO;
    using namespace System::Windows::Media::Imaging;
using namespace System::Windows::Controls::Image;
        Stream^ imageStreamSource = gcnew FileStream("C:\Users\Duke\Desktop\heart.jpg", FileMode::Open, FileAccess::Read, FileShare::Read);

                JpegBitmapDecoder^ decoder = gcnew JpegBitmapDecoder(imageStreamSource, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default);
                BitmapSource^ bitmapSource = decoder->Frames[0];//< --mamy bitmape
                // Draw the Image
                Image^ myImage = gcnew Image();
                myImage->Source = bitmapSource;
                myImage->Stretch = Stretch::None;
4

2 回答 2

0

System::Windows::Controls 命名空间(对于 Image 类)需要 PresentationFramework.dll 作为参考,而 System::Windows::Media::Imaging(对于 BitmapSource 类)命名空间需要 PresentationCore.dll。

您是否在项目中包含这两个参考?

于 2012-11-22T07:52:14.027 回答
0

鉴于您正在使用 WIC 类(例如BitmapDecoderBitmapSource),您将希望避免涉及System::Drawing所有老式 GDI 命名空间的任何事情。要么在using指令中不引用这些命名空间,要么明确使用整个System::Windows::Media命名空间。

Image您所追求的特定课程可能是(此处System::Windows::Controls::Image的文档)。

您需要在项目中添加对 WIC 包装器和一些支持程序集的引用,以便链接到适当的 DLL。

  • PresentationCore具有您想要的所有主要图像编解码器和操作类,JpegBitmapDecoder文档中提到了这一点。
  • FreezableWIC 包装器(和)使用的一些附加依赖项需要WindowsBaseDispatcherObject
  • System.Xaml也可能作为依赖项出现...在我在这里拥有的使用 WIC 的 C# 项目中,没有该程序集的构建会由于缺少 System.Windows.Markup.IUriContext. 然而,这可能是我使用 WIC 程序集的产物(但我当然没有使用 Xaml 或 IUriContext)。
  • PresentationFramework提供Image类及其依赖项,如相应文档中所述
于 2012-11-21T15:18:49.457 回答