UDF > WinAPIEx > GDI > BitMaps >


_WinAPI_SaveHICONToFile

Sauvegarde une icône unique ou multiple donné (HICON) dans un fichier (.ico) donné

#include <WinAPIGdi.au3>
_WinAPI_SaveHICONToFile ( $sFilePath, Const ByRef $vIcon [, $bCompress = 0 [, $iStart = 0 [, $iEnd = -1]]] )

Paramètres

$sFilePath Le nom du fichier .ico dans lequel sauvegarder l'icône.
$vIcon Handle de l'icône ou tableau des handles d'icône à enregistrer.
$bCompress [optionnel] Spécifie s'il faut utiliser une compression PNG pour les icônes 32 bits par pixel, si leur taille est supérieure ou égale à 256x256 pixels (262144 octets). Les valeurs valides:
True - L'icône sera sauvegardée comme une image PNG.
False - L'icône sera sauvegardée telle quelle (par défaut).
$iStart [optionnel] L'index du tableau à partir duquel commencer la sauvegarde.
$iEnd [optionnel] L'index du tableau où arrêter la sauvegarde.

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0 et définit @error <> 0.

Remarques

Cette fonction travaille avec des icônes 16, 24 et 32 bits par pixel. Puisque les icônes gérent toujours leur contenu comme un bitmap XOR dépendant du périphérique (DDB), l'image résultante qui a été sauvegardée dans un fichier .ico peut être différente de l'image source.

Si l'icône spécifiée est une icône 32 bits par pixel, et utilise un bitmap de masque de bits AND à la place du canal alpha, elle sera converti en une icône avec canal alpha (RVB + Alpha).

Notez que les icônes avec compression PNG sont supportés seulement à partir de Windows Vista. En outre, pas toutes les applications peuvent travailler avec certaines icônes.

Exemple

#include <WinAPIGdi.au3>
#include <WinAPIIcons.au3>
#include <WinAPIShellEx.au3>

Local $aIcon[3] = [48, 32, 16]

For $i = 0 To UBound($aIcon) - 1
    $aIcon[$i] = _WinAPI_Create32BitHICON(_WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', 32, $aIcon[$i], $aIcon[$i]), 1)
Next
_WinAPI_SaveHICONToFile(@TempDir & '\MyIcon.ico', $aIcon)
For $i = 0 To UBound($aIcon) - 1
    _WinAPI_DestroyIcon($aIcon[$i])
Next