Una BitMap \"ribelle\"

di il
2 risposte

Una BitMap \"ribelle\"

Saluto a tutti del Forum!
Premetto che solo da tre' mesi programmo VB6 e tralaltro sono autodidatta, quindi non ho nessuno a cui chiedere a parte i testi di cui sono in possesso.

Ma vengo all'arcano: posseggo due bitmap una con un'immagine al centro contornata di colore nero \"&H00000000\" ed una seconda con la sua matrice per la trasparenza(in pratica nero per dove deve trasparire e bianco per l'area che deve apparire).
Ora io devo caricare suddetta immagine in un controllo PictureBox in modo che olte ad essere visibile, al posto del nero che la contorna appaia il colore di fondo del controllo stesso nel mio caso \"&H8000000F\".

Ho provato a giocare col metodo PaintPicture, caricando prima le due bitmap in due controlli Picture ma per qualsiasi valore che passo all'argomento [Opcode] della penna mi ritrovo con una immagine completamente nera! mentre se ometto tale argomento mi ritrovo come risultato l'immagine stessa ma comunque contornata di nero. Insomma di operazioni booleane durante il trasferimeto dei pixel nenche l'ombra!

L'unico modo per ottenere quello che volevo e stato caricare l'immagine in una picturebox e poi eseguire uno stupidissimo ciclo For-Next dove ho fatto leggere punto per punto tutta l'mmagine e quando trovava il nero lo sostituiva con &H8000000F.
Sinceramete mi sembra di aver fatto una stupidata anche perche' oltre ad essere lentissima la cosa, e' impossibile che non si possa risolvere in modo piu' elegante il problema. Magari usando l'API di Windows... ma ho bisogno di essere indirizzato.

Ringrazio tutti d'anticipo e scusate se vi ho annoiato con banalita'.

2 Risposte

  • Re: Una BitMap \"ribelle\"

    Non ho voglia di fare delle prove,
    ma ho notato che il colore che devei far apparire è \"&H8000000F\".
    Io ho sempre lavoratto con la tripletta RGB, quindi 6 cifre ... non è mica che i colori di sistema ti convenga convertirli in RGB ?
    Inoltre da quel che mi ricordo gli OPCODE di VB lavorano con l'AND e forse ti conviene usare come colore di trasparenza il colore bianco.
  • Re: Una BitMap \"ribelle\"

    Intanto grazie per l'interessamento.

    Il colore &H8000000F& non e' che lo scelgo appositamente. E' quello che mi ritrovo di default nella proprieta' BackColor del controllo PictureBox.
    Se sia possibile modificare i colori di sistema in modo che i controlli accettino un colore RGB invece del suddetto io non lo so' fare perche' nei testi che posseggo non c'e'.

    Per la matrice non posso invertire il nero col bianco in quanto sono all'interno di un file che carica di volta in volta la mia applicazione.

    Magari se sapete indicarmi una qualche API che velocizzi di molto la ricolorazione dell'area nera sarebbe gia' sufficente.

    Ringrazio ancora.
Devi accedere o registrarti per scrivere nel forum
2 risposte