C ++ GDI массив изображений - PullRequest
       33

C ++ GDI массив изображений

1 голос
/ 31 августа 2010

я пытаюсь создать массив изображений

Image something(L"something.png");

вместо этого

Image something[2];
something[0]=(L"something.png");

любая идея

1 Ответ

0 голосов
/ 31 августа 2010

Намного проще использовать объекты Gdiplus для изображений и растровых изображений по указателю.

Рассмотрите возможность использования массива указателей. Если вы не хотите явно помнить об освобождении массива, когда вы закончите, вы можете использовать умный указатель. В приведенном ниже примере кода я использую CAutoPtr.

#include <Windows.h>
#include <gdiplus.h>
#include <atlbase.h>    

    void HandleImages(HDC hdc)
    {    
      typedef CAutoPtr<Gdiplus::Image> GdiplusImagePtr; // could be declared using CAutoPtr<Gdiplus::Bitmap>
      GdiplusImagePtr something[2];
      Gdiplus::Graphics g(hdc);

      something[0].Attach(new Gdiplus::Bitmap(L"something.png"));
      something[1].Attach(new Gdiplus::Bitmap(L"otherthing.png"));


      for (int x = 0; x < ARRAYSIZE(something); x++)
      {
          g.DrawImage(something[x], 50*x, 0);
      }

      // CAutoPtr will call destructor for each item in something array
   }
...