2016-02-02 3 views
1

Utilisation de Borland C++ Builder 2009 Je remarque que lorsque vous remplacez des images dans un TImagelist, les données du canal alpha sont corrompues.Comment configurer une instance TIcon pour prendre en charge les icônes de canal alpha (SupportsPartialTransparency)

TIcon *Icon = new TIcon() ; 
for (int x = 0 ; x < OS_Specific_count ; x++) 
    { 
    OS_xx_ImageList->GetIcon(x, Icon) ; 
    Use_ImageList->ReplaceIcon(x, Icon) ; 
    } 
delete Icon ; 

Le problème est également décrit (+ screenhots) dans un autre Q (TImageList - True color + alpha channel vs. 8-bit (256 colors)) mais je suis maintenant essayer de réduire les choses avec des questions plus spécifiques.

En parcourant TIcon dans le fichier d'aide, j'ai remarqué une propriété en lecture seule: SupportsPartialTransparency. Il semble être false dans mon cas, et je me demande si ce n'est pas la clé pour résoudre ce problème? Icon->Transparent = true ne définit pas SupportsPartialTransparency à true!

Je me demande ce que je peux faire pour m'assurer que l'instance de TIcon "obtient" et "remplace" correctement les informations de canal alpha? Les ImageLists sont créées au moment de la conception et ont des propriétés par défaut (sans changement) et contiennent des icônes 16x16 importées via l'EDI. Les icônes importées contiennent des informations sur le canal alpha.

+0

* Transparent * <> * Partiellement transparent *, pas plus de * dollar * == * demi-dollar *. Vous continuez à poser des questions concernant votre liste d'images sans inclure les propriétés de cette liste d'images. –

+0

@KenWhite - réglage par défaut, icônes 16x16 – Peter

+0

Et qu'est ce que ColorDepth? Est-ce que vous le réglez sur cd32? Vous avez été invité à fournir un MCVE complet dans votre autre question, qui inclurait le contenu du fichier de formulaire. Je vois que vous n'avez toujours pas - s'il vous plaît faites-le maintenant. Si vous ne fournissez pas les détails, il est peu probable que nous puissions vous aider, et à un moment donné, ignorer les demandes d'informations supplémentaires va commencer à embêter les gens. Je peux dire avec une certitude absolue que les images des canaux alpha fonctionnent correctement; J'ai des barres d'outils pleines d'entre eux sur mes applications, et j'utilise des icônes de canaux alpha dans plusieurs tailles pour mes applications. –

Répondre

-1

Je viens d'utiliser TPngImageList, il est compatible avec TImageList. De plus, l'éditeur de conception est plus flexible: vous devrez convertir .ico en .png. editor.

Il est gratuit et largement disponible, par exemple ici: https://github.com/TurboPack. Pas de mal de tête avec la transparence depuis :) BTW, en gardant les icônes comme PNG est plus approprié, vous pouvez les utiliser sur d'autres outils de développement et plates-formes.