CatchImage()

Syntaxe

Resultat = CatchImage(#Image, *AdresseMemoire [, Taille])
Description
Charge une image à partir de l'emplacement mémoire spécifié.

Arguments

#Image Le numéro d'identification de l'image.

#PB_Any peut être utilisé pour générer automatiquement ce numéro.
*AdresseMemoire L'adresse mémoire où se trouve l'image à charger.
Taille (optionnel) La taille de l'image en octets.

La taille est facultative car le chargeur (loader) peut déterminer quand arrêter la lecture, à partir de l'image. Il est cependant conseillé de prévoir une taille lors du chargement d'images inconnues, car le chargeur peut ensuite gérer correctement les images corrompues (sans préciser la taille de l'image, une image corrompue peut faire planter le programme).

Valeur de retour

Renvoie une valeur non nulle si l'image a été chargée avec succès , zéro sinon. Si #PB_Any a été spécifié comme paramètre #Image alors le numéro généré automatiquement est renvoyé dans 'Resultat' en cas de succès.

Remarques

La taille maximale de l'image est fonction du système d'exploitation et de la quantité de mémoire disponible. Si la mémoire disponible est suffisante alors une image de 8192x8192 pixels au moins peut être traitée par tous les systèmes d'exploitation pris en charge par PureBasic.

Quand une image est chargée, elle est convertie soit en 24 bits (si la profondeur de l'image est inférieure ou égale à 24 bits) soit en 32 bits (si l'image a un canal alpha).

Quand une image n'est plus utile, elle peut être détruite avec la commande FreeImage() pour libérer de la mémoire.

Cette commande est utile pour inclure des images (logo etc..) directement dans l'exécutable avec la commande IncludeBinary. Néanmoins, n'abusez pas de cette fonctionnalité car une image incluse dans un exécutable consomme automatiquement de la mémoire supplémentaire puisque tout l'exécutable, y compris les images, est chargé en mémoire.

L'image peut être au format BMP, icône (.ico, seulement supporté sous Windows) ou dans un des formats supportés par la bibliothèque ImagePlugin. Sous Windows, si le format de l'image est une icône (.ico), les commandes suivantes ne seront pas disponibles pour la manipuler: SaveImage() et ImageOutput().

Les commandes suivantes peuvent être utilisées pour activer automatiquement le support des formats d'images suivants:

UseJPEGImageDecoder()
UseJPEG2000ImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
UseTGAImageDecoder()

Exemple

  If OpenWindow(0, 0, 0, 256, 256, "CatchImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CatchImage(0, ?Image_Start, ?Image_End - ?Image_Start)
      ImageGadget(0, 0, 0, ImageWidth(0), ImageHeight(0), ImageID(0))
      Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
    EndIf
  EndIf

  DataSection
    Image_Start:
      IncludeBinary #PB_Compiler_Home+"Examples\Sources\Data\Background.bmp"
    Image_End:
  EndDataSection
Notes: Le "?" est un pointeur vers un label. Vous trouverez plus d'informations au sujet des pointeurs et des accès mémoire ici

Voir aussi

CreateImage(), LoadImage(), FreeImage(), ImagePlugin library

OS Supportés

Tous

<- AddImageFrame() - Image Index - CopyImage() ->