Grafik - TBitmap in TIcon umwandeln



  • Hi,

    wie krieg ich das hin? Ticon hat keine Eigenschaft Canvas, Der Umweg über TBitmap, Clipboard und dann TIcon klappt auch nicht, weil Canvas von TBitamap Read Only ist. Ich will ein Bild (32 x 32) aus dem Canvas einer PaintBox in einer *.ico speichern.

    [ Dieser Beitrag wurde am 30.06.2002 um 18:43 Uhr von Jansen editiert. ]



  • Diese Funktion habe ich mal geschrieben. Sie konvertiert ein Bitmap in ein Icon. Das hilft dir sicher:

    TIcon* __fastcall BitmapToIcon(Graphics::TBitmap* bmp, TColor transparent)
    {
      if(bmp->Width<=32 && bmp->Height<=32)
      {
        int pixels;
        if(bmp->Width==16 && bmp->Height==16) pixels = 16;
          else if(bmp->Width==32 && bmp->Height==32) pixels = 32;
                 else return NULL;                                //Error
        Graphics::TBitmap* NewBmp = new Graphics::TBitmap();
        TImageList* List = new TImageList(Application);
        TIcon* icn = new TIcon();
        List->Height = pixels;
        List->Width = pixels;
        NewBmp->Width = pixels;
        NewBmp->Height = pixels;
        NewBmp->Canvas->StretchDraw(NewBmp->Canvas->ClipRect, bmp);
        List->AddMasked(NewBmp, transparent);
        List->GetIcon(0,icn);
        delete NewBmp;
        delete List;
        return icn;
      }
      else return NULL;                                           //Error
    }
    


  • FAQed up. 🙂


Anmelden zum Antworten