0

我正在尝试在 Windows CE6 下使用 CImage 加载 JPG 图像。我在网上搜索过,但大多数都使用如下所述的功能(但该功能本身对 CE 用户禁用):

CImage myImage;

myImage.Load(_T("C:\Image.jpg"));// Not available in windows CE

因为在atlimage.h

#ifndef _WIN32_WCE

inline HRESULT CImage::Load( IStream* pStream ) throw()
{
    if( !InitGDIPlus() )
    {
        return( E_FAIL );
    }

    Gdiplus::Bitmap bmSrc( pStream );
    if( bmSrc.GetLastStatus() != Gdiplus::Ok )
    {
        return( E_FAIL );
    }

    return( CreateFromGdiplusBitmap( bmSrc ) );
}

inline HRESULT CImage::Load( LPCTSTR pszFileName ) throw()
{
    if( !InitGDIPlus() )
    {
        return( E_FAIL );
    }

    Gdiplus::Bitmap bmSrc( (CT2W)pszFileName );
    if( bmSrc.GetLastStatus() != Gdiplus::Ok )
    {
        return( E_FAIL );
    }

    return( CreateFromGdiplusBitmap( bmSrc ) );
}

是否有任何其他替代方法可以使用 CImage 或其他任何方式加载 jpg/bmp/gif/png 文件?

4

2 回答 2

0

尽管这是一个旧帖子,但我最近也在寻找这个,所以我想我会更新它。

Windows Ce 6 支持 IImagingFactory。使用起来很痛苦,但它可以工作,你可以从磁盘或内存中加载 png 或位图。

CE 5.0 的 Microsoft 文档

微软博客示例

于 2017-06-03T22:48:34.470 回答
-1

CImage::Load在 Windows CE 中的 MFC 下绝对支持。

您能否澄清“对 CE 用户禁用”是什么意思?

Windows CE 中没有“C”驱动器,因此您的示例代码将无法工作,但没有理由这样的事情不应该:

CImage myImage;
myImage.Load(_T("\\My Device\\Image.jpg"));
于 2012-12-07T15:51:18.173 回答