Newsgroup: it.comp.lang.visual-basic
Titolo: ?BmpToIcon

Ho scaricato questo programma che crea delle icone da bitmap.
Però solo icone 32x32, a me servono 16x16.
Se inserisco una bitmap 16x16, mi salva una icona 32x32, con la bitmap 16x16 
in alto a sinistra con i pixel trasparenti e i restanti pixel bianchi.
Se modifico i parametri del codice anzicchè 32x32 metto 16x16, mi salva una 
icona 16x16 tutta nera senza pixel trasparenti.
Questa è la routine che salva l'icona
Private Sub SaveIcon8Bit(nDC As Long, CopyDC As Long, CopyBitmap As Long)
    Dim fID As ICONDIR
    Dim MaskInfo As BITMAPINFO1Bit
    Dim IconInfo As BITMAPINFO8Bit
    Dim nMaskDC As Long
    Dim nMaskBitmap As Long
    Dim bBits(0 To 1023) As Byte
    If Dir(strNomeIco) <> "" Then Kill strNomeIco
    SetSaveData 8, nDC, MaskInfo, fID, nMaskDC, nMaskBitmap
    fID.idEntries.dwBytesInRes = 2216
    IconInfo.bmiHeader.biSize = Len(IconInfo.bmiHeader)
    IconInfo.bmiHeader.biBitCount = 8
    IconInfo.bmiHeader.biSizeImage = 1152
    IconInfo.bmiHeader.biClrUsed = 256
    IconInfo.bmiHeader.biCompression = BI_RGB
    IconInfo.bmiHeader.biHeight = lngSize * 2
    IconInfo.bmiHeader.biPlanes = 1
    IconInfo.bmiHeader.biWidth = lngSize
    Open strNomeIco For Binary As #1
        Put #1, , fID
        Put #1, , IconInfo.bmiHeader
        GetIconBits bBits(), 8, CopyDC, CopyBitmap, IconInfo.bmiColors()
        Put #1, , IconInfo.bmiColors
        Put #1, , bBits()
        GetDIBits nMaskDC, nMaskBitmap, 0, lngSize, MaskBits(0), MaskInfo, 
DIB_RGB_COLORS
        Put #1, , MaskBits()
    Close
    DeleteDC nMaskDC
    DeleteObject nMaskBitmap
End Sub
Non so dove intervenire per rendere la trasparenza.
Carmelo 

     Open strNomeIco For Binary As #1
e se ci fossero altri file aperti?
non dev'essere facile pestare sulla tastiera con le chiappe, ma il
fenomeno che ci riesce si trova sempre.
certo che ne gira di rumenta per la rete... :-(
-- 
ciao, hal

 non dev'essere facile pestare sulla tastiera con le chiappe, 
ROTFLMAO
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca

      IconInfo.bmiHeader.biWidth = lngSize
e queste variabili da dove arrivano?
Ciao

 ha scritto nel messaggio 
news:slrndrnn1n....@balder.ace...

Il file lo elimina prima di entrare in routine
lngSize è una costante impostata a 16
Carmelo 

 Il file lo elimina prima di entrare in routine
Ottima risposta.
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

 che siamo noi.
Io sto nell'altro muro  ^__^
Ave
giuseppeD
---
CCR


Dal cielo :P
Ma non sono proprietą della classe?
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site (
http://www.tekkentag.altervista.org/
 )
Athlon X2 3800+@2500mhz, DDR500 1Gb GeIL One S 2.5-3-3-5
7800GTX, Aureon Universe 7.1, DFI nf4 UT Ultra-D 

Il programma BmpToIcon l'ho scaricato da Planet-Source-Code
era suggerito in un vecchio post trovato su google
Carmelo

 Ma non sono proprietą della classe?
quale classe?
-- 
ciao, hal

 ha scritto

l'operaia, che va in paradiso.

 e queste variabili da dove arrivano?
E chi sono ? E dove vanno ?
Un Paperino "Un fiorino !".

 l'operaia, che va in paradiso.
se e` operaia l'unica proprieta` e` la prole :P
-- 
ciao, a

 se e` operaia l'unica proprieta` e` la prole :P
verissimo, ma anche senza ricorrere all'obsoleto e poco efficiente type
soviet (*), puoi agevolmente potenziarla con l'array coop(), anche se
ultimamente incontra dei crash non del tutto imprevisti per la sua impropria
gestione di PM_SENDWARRANTYMESSAGE.
(*) per un esempio di localizzazione del type su sistemi piu' operativi,
www.kibbutz.il
.


IconInfo...


 IconInfo...
Carmelo, per la precisione IconInfo è il nome della variabile che contiene 
una struttura di tipo BITMAPINFO.
E' bene indicare le cose con il nome esatto...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_0zn6.asp
Ciao


 contiene una struttura di tipo BITMAPINFO.
Ops... si vede che sono un pò arruginito...


 Ops... si vede che sono un pņ arruginito...
di gia`? io cosa dovrei dire, allora? :P
-- 
ciao, a

 di gia`? io cosa dovrei dire, allora? :P
Il fatto è che è da un bel pò che non programmo "seriamente" in visual 
basic...
Mi sono dedicato di più all' elettronica...
