EncodeImage()

Syntaxe

*Resultat = EncodeImage(#Image [, ImagePlugin [, Options [, Profondeur]]])
Description
Encode une image dans une mémoire tampon.

Arguments

#Image L'image à encoder.
ImagePlugin (optionnel) Le format de l'image à encoder. Il peut être une des valeurs suivantes:
  #PB_ImagePlugin_BMP      : Encoder l'image en BMP (Par défaut)
  #PB_ImagePlugin_JPEG     : Encoder l'image en JPEG (UseJPEGImageEncoder() doit être utilisé)
  #PB_ImagePlugin_JPEG2000 : Encoder l'image en JPEG2000 (UseJPEG2000ImageEncoder() doit être utilisé)
  #PB_ImagePlugin_PNG      : Encoder l'image en PNG (UsePNGImageEncoder() doit être utilisé)
Options (optionnel) Qualité de l'image pour #PB_ImagePlugin_JPEG et #PB_ImagePlugin_JPEG2000:
De 0 = Qualité médiocre à 10 = Qualité maximale.
Qualité par défaut = 7, si aucune option n'est spécifiée.

Quand une image est codée en utilisant une palette (1, 4 ou 8), la constante suivante peut faire partie de la combinaison:
  #PB_Image_FloydSteinberg: Applique un filtre Floyd-Steinberg.
Profondeur (optionnel) La profondeur dans lequel vous souhaitez enregistrer l'image.

Les valeurs valides sont 1, 4, 8, 24 et 32.
La valeur par défaut est la profondeur de l'image originale.
Pour l'instant, seul l'encodeur PNG supporte le format d'image palettisée (1, 4 ou 8 bits).

Valeur de retour

Renvoie un pointeur vers une mémoire tampon nouvellement allouée contenant l'image encodée, ou zéro si l'encodeur a échoué.

MemorySize() peut être utilisé pour obtenir la taille de l'image encodée.
FreeMemory() doit être utilisé pour libérer la mémoire tampon après utilisation.

Exemple

  UsePNGImageEncoder()
  UsePNGImageDecoder()
  If OpenWindow(0, 0, 0, 426, 128, "EncodeImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ImageGadget(0, 0, 0, 128, 128, LoadImage(0, #PB_Compiler_Home+"Examples\Sources\Data\GeeBee2.bmp"))
    ButtonGadget(1, 138, 50, 150, 30, "Encodage PNG 2 bits ->")
    ImageGadget(2, 298, 0, 128, 128, 0)
    
    *ptr=EncodeImage(0 ,#PB_ImagePlugin_PNG, #PB_Image_FloydSteinberg, 2) ; Encodage 2 bits
    
    Repeat
      Event = WaitWindowEvent()          
      If Event = #PB_Event_Gadget  
        Select EventGadget()
          Case 1 
            CatchImage(2, *ptr)          ; L'image est en mémoire
            SetGadgetState(2,ImageID(2)) ; Affichage
        EndSelect
      EndIf
    Until Event = #PB_Event_CloseWindow
   EndIf

Voir aussi

LoadImage(), ImagePlugin library

OS Supportés

Tous

<- CreateImage() - Image Index - FreeImage() ->