Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Pascal: Delphi: bmp->ico

ezuli [23.02.2004 18:25:29]

#

Onko olemassa mitään keinoa millä saisi talletettua bmp-kuvan ikoni muotoon?
Olen tekemässä ohjelmaa mikä piirtää kuvia 32x32 alueelle käyttäen canvas.pixels käskyä, mutta se toimii vain bittikarttoissa.

TETRIS [23.02.2004 18:46:22]

#

Muuta tiedosto pääte .ico muotoon :P .... se pitäisi (ihme kyllä) toimia.... siis ainakin jos mä teen ikonin niin teen eka bmp kuvan ja muutan vaan päätteen niin saan siitä toimivan ikonin.

ezuli [23.02.2004 18:54:48]

#

Noin minäkin ensin luulin, mutta jos avaa kyseisen ikonin esm. Irfan viewillä, niin tulee ilmoitus että se on bmp väärällä päätteellä.

Ja olisi hyvä jos saisi käytettyä maskia, ainakin sen verran ettei ikonissa olisi yhtään läpinäkyvää pistettä.

Antti Laaksonen [24.02.2004 16:38:52]

#

Tiedoston nimen vaihtaminen ei tietystikään riitä, sillä BMP- ja ICO-tiedostojen rakenne on sentään eri. Jos muu ei auta, niin aina on tietenkin mahdollista ottaa selvää Windowsin kuvakeformaatista ja kirjoittaa ohjelma sen pohjalta. Mutta varmastikin Delphille on olemassa jokin valmis lisäkomponentti, jolla kuvakkeiden tallennus on helposti mahdollista. Itse en valitettavasti tunne tarkemmin asiaa.

sqwiik [24.02.2004 18:17:47]

#

Jos käytät TImage-komponenttia, niin laita siihen päälle Icon-property. Siiten voit ladata siihen ikonin / tallentaa kuvan ikonina (streamiin, ainoastaan - harmi).

ezuli [25.02.2004 12:39:34]

#

// Add these units to your uses-section:
// Folgende units hinzufügen:

uses
  Graphics, Controls

{
  Creates an TIcon object from a TBitmap.
  Handy for dynamically updating your application's icon.
  I use it often to update my application's tray icon.

  Erzeugt ein TIcon aus einem TBitmap Objekt.
  Es ist nützlich, um das Icon der Applikation dynamisch zu
  verändern.
}

function CreateIconFromBitmap(Bitmap: TBitmap; TransparentColor: TColor): TIcon;
begin
  with TImageList.CreateSize(Bitmap.Width, Bitmap.Height) do
  begin
    try
      AllocBy := 1;
      AddMasked(Bitmap, TransparentColor);
      Result := TIcon.Create;
      try
        GetIcon(0, Result);
      except
        Result.Free;
        raise;
      end;
    finally
      Free;
    end;
  end;
end;

Tämmönen löyty:
http://www.swissdelphicenter.ch/en/showcode.php?id=426

En ole ehtinyt kokeilla, mutta uskoisin toimivan.

ezuli [25.02.2004 20:57:17]

#

Toimihan se!
Tässä olisi nyt ohjelmani demo-versio:
http://www.freewebs.com/ezuli/seka/Eikoni.zip

Olisi hyvä jos antaisitte kommentteja.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta