Gå til innhold

Konvertere fra .bmp til .ico med transparent farge


Anbefalte innlegg

Dette er koden jeg bruker for å konvertere fra .bmp til .ico:

 

Private Sub Convert(ByVal asBMPFilename As String, ByVal asICOFilename As String)

   Dim a As IPictureDisp
   Set a = LoadPicture(asBMPFilename)
   
   ImageList1.ListImages.Add Picture:=a
   Set a = ImageList1.ListImages(1).ExtractIcon
   
   On Error GoTo ErrHandler
   SavePicture a, asICOFilename
   
   ImageList1.ListImages.Remove (1)
       
   Exit Sub
   
ErrHandler:

   ImageList1.ListImages.Remove (1)
   
   Select Case Err.Number
       Case 380
           Err.Raise Err.Number, Err.Source, Err.Description & vbNewLine & "The bitmap may be too big to convert to an icon format"
       Case Else
           Err.Raise Err.Number, Err.Source, Err.Description
   End Select
   
End Sub

 

Er det på noen måte mulig å modifisere denne koden slik at alt som var hvitt i .bmp-filen nå blir transparent i .ico-filen?

Endret av Degeim
Lenke til kommentar
Videoannonse
Annonse

En benytter vanligvis to bilder for å få til en gjennomsiktighetseffekt - selve bildet samt en såkalt maske, eller via en gjennomsiktighetverdi - i 32-bit benyttes Alpha-verden (de siste 8 bitene av fargen) til akkurat dette formålet.

 

Problemet er at SavePicture ikke kan lagre to ICO-bilder i samme fil, hvilket betyr at du enten må ty til API eller gjøre det hele manuelt, eksempelvis via følgende klasse:

http://www.vbaccelerator.com/home/VB/Code/..._VB/article.asp

Endret av aadnk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...