Page 1 sur 1

Générateur de Palette de dégradé de couleur

Publié : jeu. 31/juil./2025 11:06
par plabouro472
Générateur de Palette de dégradé de couleur

PB : 6.21
Os : Windows 11

Nombre de dégradé : de 1 à 15 par ComboBox.
- On choisi une couleur de base pour le dégradé.
- On ajoute les dégradés à la liste.
- On peut revenir en arrière.
- On exporte en .bmp ou en code source .pb
- On copie dans le presse papier en .bmp ou en code source .pb


Le code complet et le manuel sont téléchargeable ICI : https://1drv.ms/u/c/1ac3401a3244fd29/EU ... A?e=NQuCCh




Le code principal : CouleurDegrade.pb

Code : Tout sélectionner

 

Global Titre .s = "Couleur Dégradé V20250731."

Structure Struc_TbCouleurs
 Array TbCouleurs.l ( 15 )
 DataCouleur .s
EndStructure
Global .i ImageCouleurInitial
Global .l CouleurInitial
Global .a NbDegrade
Global .l NewList Palette.Struc_TbCouleurs()
Global .i Img_PaletteBmp

Declare ChargeCouleurInitiale ( )
Declare AfficheDegrades ( _NbDegrade.a , _CouleurInitial.l )
Declare RestaurePalette ( )


; *****************
; Images des gadgets
XIncludeFile "DatasImages.pb"


; *****************
; La fenêtre principale
Structure Struc_Degrade
 Id_GadgetTexte .i
 Id_GadgetCouleur .i
 Id_GadgetValeur .i
 Id_ImageCouleur .i
EndStructure
Global .i Win_0
Global .i ButtonQuitter
Global .i ButtonImage_Couleur
Global .i Text_Couleur
Global .i Text_NbDegrade
Global .i Combo_NbDegrade
Global .i Dim Tb_GadgetDegrade.Struc_Degrade ( 15 )
Global .i Panel_Visu
Global .i ScrollArea_PaletteBmp
Global .i GadgetImage_PaletteBmp
Global .i Editor_DatasPb
Global .i ButtonImage_ExportBmp
Global .i ButtonImage_ExportPb
Global .i Button_AjouterDegrade
Global .i Button_NouvellePalette
Global .i ButtonImage_Annuler
Global .i ButtonImage_CopieTxt
Global .i ButtonImage_CopieBmp
Enumeration FormFont
 #Consolas
EndEnumeration
LoadFont( #Consolas , "Consolas" , 10 )
; *****************
; Les procédures d'évènements
Procedure Combo_NbDegradeOnClick (EventType)
 NbDegrade = Val( GetGadgetText( Combo_NbDegrade ) )
 AfficheDegrades ( NbDegrade , CouleurInitial )
 DisableGadget ( Combo_NbDegrade , #True )
 DisableGadget ( Button_AjouterDegrade , #False )
 
EndProcedure
Procedure ButtonImage_CouleurOnClick (EventType)
 Protected .l Col
 Col = ColorRequester( CouleurInitial )
 If Col <> -1
 CouleurInitial = Col
 ChargeCouleurInitiale ( )
 AfficheDegrades ( NbDegrade , CouleurInitial )
 EndIf
 
EndProcedure
Procedure BoutonQuitterOnClick (EventType)
 End
EndProcedure
Procedure ButtonImage_ExportBmpOnClick (EventType)
 Protected .i ImageTmp
 Protected Fichier$
 
 Fichier$ = SaveFileRequester("Enregistrer sous.", GetCurrentDirectory(), "Image (*.bmp)|*.bmp|", 0)
 If Fichier$
 If GetExtensionPart ( Fichier$ )<> ".bmp"
 Fichier$ + ".bmp"
 EndIf
 
 ImageTmp = GrabImage( Img_PaletteBmp , #PB_Any , 0 , 0 , NbDegrade * 25 , ListSize ( Palette() ) * 25 )
 SaveImage ( ImageTmp , Fichier$ )
 MessageRequester( "Information" , "Enregistremenr éffectuer." , 0 )
 
 Else
 MessageRequester( "Information" , "La sélection a été annulée." , 0 )
 
 EndIf
 
EndProcedure
Procedure ButtonImage_ExportPbOnClick (EventType)
 Protected Fichier$
 
 Fichier$ = SaveFileRequester("Enregistrer sous.", GetCurrentDirectory(), "PureBasic (*.pb)|*.pb|", 0)
 If Fichier$
 If GetExtensionPart ( Fichier$ )<> ".pb"
 Fichier$ + ".pb"
 EndIf
 
 CreateFile ( 0 , Fichier$ ) 
 WriteString ( 0 , GetGadgetText( Editor_DatasPb ) )
 CloseFile ( 0 )
 MessageRequester( "Information" , "Enregistremenr éffectuer." , 0 )
 
 Else
 MessageRequester( "Information" , "La sélection a été annulée." , 0 )
 
 EndIf
EndProcedure
Procedure ButtonImage_CopieTxtOnClick (EventType)
 If SetClipboardText( GetGadgetText( Editor_DatasPb ) )
 MessageRequester( "Info" , "Le texte à été copié dans le presse papier." , 0 )
 EndIf
 
EndProcedure
Procedure ButtonImage_CopieBmpOnClick (EventType)
 Protected .i ImageTmp
 ImageTmp = GrabImage( Img_PaletteBmp , #PB_Any , 0 , 0 , NbDegrade * 25 , ListSize ( Palette() ) * 25 )
 If SetClipboardImage( ImageTmp )
 MessageRequester( "Info" , "L'image à été copiée dans le presse papier." , 0 )
 EndIf
EndProcedure
Procedure Button_AjouterDegradeOnClick (EventType)
 Protected Txt$ = "DATA.l "
 AddElement ( Palette() )
 DisableGadget ( ButtonImage_Annuler , #False )
 DisableGadget ( ButtonImage_CopieBmp , #False )
 DisableGadget ( ButtonImage_CopieTxt , #False )
 DisableGadget ( ButtonImage_ExportBmp , #False )
 DisableGadget ( ButtonImage_ExportPb , #False )
 
 For n = 1 To NbDegrade
 Palette()\TbCouleurs( n ) = GetGadgetColor( Tb_GadgetDegrade( n )\Id_GadgetCouleur , #PB_Gadget_BackColor )
 Txt$ + "$" + RSet( Hex( Palette()\TbCouleurs( n ) ) , 6 , "0" )
 If n < NbDegrade
 Txt$ + ","
 EndIf
 Next
 
 Palette()\DataCouleur = txt$
 
 RestaurePalette ( )
EndProcedure
Procedure Button_NouvellePaletteOnClick (EventType)
 DisableGadget ( Combo_NbDegrade , #False )
 ClearList ( Palette() )
 ClearGadgetItems ( Editor_DatasPb )
 RestaurePalette ( )
 DisableGadget ( ButtonImage_Annuler , #True )
 DisableGadget ( Button_AjouterDegrade , #True )
 DisableGadget ( ButtonImage_Annuler , #True )
 DisableGadget ( ButtonImage_CopieBmp , #True )
 DisableGadget ( ButtonImage_CopieTxt , #True )
 DisableGadget ( ButtonImage_ExportBmp , #True )
 DisableGadget ( ButtonImage_ExportPb , #True )
 
EndProcedure
Procedure ButtonImage_AnnulerOnClick (EventType)
 If ListSize ( Palette() ) > 0
 LastElement ( Palette() )
 DeleteElement ( Palette() )
 RestaurePalette ( )
 EndIf
 
 If ListSize ( Palette() ) > 0
 DisableGadget ( ButtonImage_Annuler , #False )
 DisableGadget ( ButtonImage_CopieBmp , #False )
 DisableGadget ( ButtonImage_CopieTxt , #False )
 DisableGadget ( ButtonImage_ExportBmp , #False )
 DisableGadget ( ButtonImage_ExportPb , #False )
 Else
 DisableGadget ( ButtonImage_Annuler , #True )
 DisableGadget ( ButtonImage_CopieBmp , #True )
 DisableGadget ( ButtonImage_CopieTxt , #True )
 DisableGadget ( ButtonImage_ExportBmp , #True )
 DisableGadget ( ButtonImage_ExportPb , #True )
 EndIf
 
EndProcedure
; *****************
; Création de la fenêtre
 Win_0 = OpenWindow( #PB_Any , 0 , 0 , 700 , 540 , "" , #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_Invisible )
 SetWindowColor ( Win_0 , RGB( 192 , 192 , 192 ) )
 ButtonQuitter = ButtonGadget ( #PB_Any , 30 , 10 , 90 , 20 , "Quitter" )
 ButtonImage_Couleur = ButtonImageGadget ( #PB_Any , 160 , 10 , 100 , 100 , 0 )
 GadgetToolTip ( ButtonImage_Couleur , "Choisir la couleur de base." )
 Text_Couleur = TextGadget ( #PB_Any , 160 , 110 , 100 , 20 , "" , #PB_Text_Center | #PB_Text_Border)
 Text_NbDegrade = TextGadget ( #PB_Any , 10 , 40 , 130 , 20 , "Nombre de dégradés" )
 Combo_NbDegrade = ComboBoxGadget ( #PB_Any , 10 , 60 , 130 , 20 )
 For i.a = 1 To 15
 Tb_GadgetDegrade ( i )\Id_GadgetTexte = TextGadget ( #PB_Any , 10 , 140 + i * 25 , 20 , 20 , RSet( Str( i ) , 2 , "0" ) , #PB_Text_Center | #PB_Text_Border )
 Tb_GadgetDegrade ( i )\Id_GadgetCouleur = TextGadget ( #PB_Any , 40 , 140 + i * 25 , 100 , 20 , "" , #PB_Text_Center | #PB_Text_Border )
 Tb_GadgetDegrade ( i )\Id_GadgetValeur = TextGadget ( #PB_Any , 160 , 140 + i * 25 , 100 , 20 , "" , #PB_Text_Center | #PB_Text_Border )
 Next
 Panel_Visu = PanelGadget(#PB_Any, 270, 20, 420, 470)
 AddGadgetItem ( Panel_Visu , -1 , "Palette BMP" )
 ScrollArea_PaletteBmp = ScrollAreaGadget ( #PB_Any , 10 , 10 , 400 , 400 , 300 , 225 , 1 , #PB_ScrollArea_Center)
 GadgetImage_PaletteBmp = ImageGadget ( #PB_Any , 10 , 10 , 400 , 400 , 0 )
 CloseGadgetList () ; Ferme le container ScrollAreaGadget
 
 ButtonImage_ExportBmp = ButtonImageGadget ( #PB_Any , 20 , 415 , 25 , 25 , ImageID( Image_ExportBmp ) )
 GadgetToolTip ( ButtonImage_ExportBmp , "Exporter la palette" )
 ButtonImage_CopieBmp = ButtonImageGadget ( #PB_Any , 60 , 415 , 25 , 25 , ImageID( Image_Copier ) )
 GadgetToolTip ( ButtonImage_CopieBmp , "Copier l'image dans le presse papier." )
 
 AddGadgetItem ( Panel_Visu , -1 , "Datas PB" )
 Editor_DatasPb = EditorGadget ( #PB_Any , 10 , 8 , 400 , 400 , #PB_Editor_ReadOnly)
 AddGadgetItem ( Editor_DatasPb, -1, "" )
 ButtonImage_ExportPb = ButtonImageGadget ( #PB_Any , 20 , 415 , 25 , 25 , ImageID( Image_ExportPb ) )
 GadgetToolTip (ButtonImage_ExportPb , "Exporter les Datas")
 ButtonImage_CopieTxt = ButtonImageGadget ( #PB_Any , 60 , 415 , 25 , 25 , ImageID( Image_Copier ) )
 GadgetToolTip ( ButtonImage_CopieTxt , "Copier le code dans le presse papier." )
 CloseGadgetList () ; Ferme le container PanelGadget
 
 Button_AjouterDegrade = ButtonGadget ( #PB_Any , 280 , 500 , 170 , 25 , "Ajouter le dégradé à la liste." )
 Button_NouvellePalette = ButtonGadget ( #PB_Any , 460 , 500 , 150 , 25 , "Nouvelle palette" )
 ButtonImage_Annuler = ButtonImageGadget ( #PB_Any , 630 , 500 , 25 , 25 , ImageID( Image_Annuler ) )
 GadgetToolTip ( ButtonImage_Annuler , "Annuler la dernière action." )
 


; *****************
; Initialisation des gadgets
SetWindowTitle( Win_0 , Titre ) 
SetGadgetColor ( Text_NbDegrade , #PB_Gadget_BackColor , RGB( 192 , 192 , 192 ) )
For i.a = 1 To 15 Step 2
 AddGadgetItem ( Combo_NbDegrade , -1 , Str( i ) )
Next
SetGadgetFont (Editor_DatasPb, FontID( #Consolas ) )
CouleurInitial = RGB( Random( 255 ) , Random( 255 ) , Random( 255 ) )
ImageCouleurInitial = CreateImage ( #PB_Any , 100 , 100 )
SetGadgetState ( Combo_NbDegrade , 3 )
ChargeCouleurInitiale ( )
NbDegrade = Val( GetGadgetText( Combo_NbDegrade ) )
DisableGadget ( Combo_NbDegrade , #True )
DisableGadget ( ButtonImage_Annuler , #True )
DisableGadget ( ButtonImage_CopieBmp , #True )
DisableGadget ( ButtonImage_CopieTxt , #True )
DisableGadget ( ButtonImage_ExportBmp , #True )
DisableGadget ( ButtonImage_ExportPb , #True )
AfficheDegrades ( NbDegrade , CouleurInitial )
HideWindow ( Win_0 , #False )

; *****************
; Procédures divers du programme
Procedure ChargeCouleurInitiale ( )
 StartDrawing ( ImageOutput( ImageCouleurInitial ) )
 Box ( 0 , 0 , 100 , 100 , CouleurInitial )
 StopDrawing ( ) 
 SetGadgetAttribute ( ButtonImage_Couleur , #PB_Button_Image , ImageID( ImageCouleurInitial ) )
 SetGadgetText ( Text_Couleur , "$" + RSet( Hex( CouleurInitial ) , 6 , "0" ) )
EndProcedure
Procedure AfficheDegrades ( _NbDegrade.a , _CouleurInitial.l )
 Protected .f Pourcent = 0
 Protected .a NbCol = _NbDegrade / 2
 Protected .a Rouge0 = Red ( _CouleurInitial )
 Protected .a Vert0 = Green ( _CouleurInitial )
 Protected .a Bleu0 = Blue ( _CouleurInitial )
 Protected .l Coul = 0
 Protected .a Ligne = 1
 Protected .a n = 0
 
 ; Pour les couleurs sombres
 For n = 1 To NbCol
 Pourcent = n / ( NbCol + 1 )
 Coul = RGB( Rouge0 * Pourcent , Vert0 * Pourcent , Bleu0 * Pourcent )
 SetGadgetText ( Tb_GadgetDegrade ( Ligne )\Id_GadgetTexte , RSet( Str( Ligne ) , 2 , "0" ) )
 SetGadgetColor ( Tb_GadgetDegrade ( Ligne )\Id_GadgetCouleur , #PB_Gadget_BackColor , Coul )
 SetGadgetText ( Tb_GadgetDegrade ( Ligne )\Id_GadgetValeur , "$" + RSet( Hex( Coul ) , 6 , "0" ) )
 Ligne + 1
 Next
 
 ; Pour la couleurs initiale
 Coul = RGB( Rouge0 , Vert0 , Bleu0 )
 SetGadgetText ( Tb_GadgetDegrade ( Ligne )\Id_GadgetTexte , RSet( Str( Ligne ) , 2 , "0" ) )
 SetGadgetColor ( Tb_GadgetDegrade ( Ligne )\Id_GadgetCouleur , #PB_Gadget_BackColor , Coul )
 SetGadgetText ( Tb_GadgetDegrade ( Ligne )\Id_GadgetValeur , "$" + RSet( Hex( Coul ) , 6 , "0" ) )
 Ligne + 1
 
 ; Pour les couleurs claires
 Rouge1 = 255 - Rouge0
 Vert1 = 255 - Vert0
 Bleu1 = 255 - Bleu0
 For n.a = 1 To NbCol
 Pourcent = n / ( NbCol + 1 )
 Coul = RGB( Rouge0 + Rouge1 * Pourcent , Vert0 + Vert1 * Pourcent , Bleu0 + Bleu1 * Pourcent )
 SetGadgetText ( Tb_GadgetDegrade ( Ligne )\Id_GadgetTexte , RSet( Str( Ligne ) , 2 , "0" ) )
 SetGadgetColor ( Tb_GadgetDegrade ( Ligne )\Id_GadgetCouleur , #PB_Gadget_BackColor , Coul )
 SetGadgetText ( Tb_GadgetDegrade ( Ligne )\Id_GadgetValeur , "$" + RSet( Hex( Coul ) , 6 , "0" ) )
 Ligne + 1
 Next
 
 ; Efface le reste
 For n.a = Ligne To 15
 Coul = RGB( 192 , 192 , 192 )
 SetGadgetText ( Tb_GadgetDegrade ( Ligne )\Id_GadgetTexte , "" )
 SetGadgetColor ( Tb_GadgetDegrade ( Ligne )\Id_GadgetCouleur , #PB_Gadget_BackColor , Coul )
 SetGadgetText ( Tb_GadgetDegrade ( Ligne )\Id_GadgetValeur , "" )
 Ligne + 1
 Next
 
EndProcedure
Procedure RestaurePalette ( )
 Protected .u Larg = 25
 Protected .u Ligne = 0
 Protected .u LigneTxt = 0
 Protected Txt$ = ""
 Protected .u LargImage = Larg * NbDegrade
 Protected .u HautImage = Larg * ListSize( Palette() )
 
 ; Un élément a été ajouté ou supprimé, les dimensions ont changé, on supprime l'image
 If Img_PaletteBmp : FreeImage( Img_PaletteBmp ) : EndIf
 
 If ListSize( Palette() ) ; S'il y a des éléments dans la liste
 
 ; On réajuste la taille des Gadgets
 ResizeGadget ( GadgetImage_PaletteBmp , #PB_Ignore , #PB_Ignore , LargImage , HautImage )
 SetGadgetAttribute ( ScrollArea_PaletteBmp , #PB_ScrollArea_InnerWidth , LargImage + 10 ) ; +10 pour les ascenceurs
 SetGadgetAttribute ( ScrollArea_PaletteBmp , #PB_ScrollArea_InnerHeight , HautImage + 10 ) ; +10 pour les ascenceurs
 SetGadgetAttribute ( ScrollArea_PaletteBmp , #PB_ScrollArea_ScrollStep , Larg )
 
 ; On recrée une image à la nouvelle dimension
 Img_PaletteBmp = CreateImage( #PB_Any , LargImage , HautImage , 24 , #Black )
 
 ; Efface la palette de datas
 ClearGadgetItems ( Editor_DatasPb )
 ; Code de chargement des datas
 Txt$ = "Restore DataPalette"  : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = "Global .a Large = " + Str( NbDegrade - 1 ) : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = "Global .a Haut  = " + Str( ListSize( Palette() ) - 1 ) : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = "Global .l Dim TableCouleurs( Large , Haut )" : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = "For y = 0 to Haut"  : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = " For x = 0 to Large"  : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = " Read.l TableCouleurs( x , y )" : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = " Next"  : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = "Next"  : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = ""  : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = "DataSection"  : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 Txt$ = "DataPalette:"  : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 
 StartDrawing ( ImageOutput( Img_PaletteBmp ) )
 ForEach Palette()
 Txt$ = "Data .l "
 For n = 1 To NbDegrade
 ; Redessine la palette de couleur
 Box ( (n - 1) * Larg + 1 , Ligne * Larg + 1 , Larg - 2 , Larg - 2 , Palette()\TbCouleurs( n ) )
 
 ; Ecrit le code de la palette de datas
 Txt$ + "$" + RSet( Hex( Palette()\TbCouleurs( n ) ) , 6 , "0" )
 If n < NbDegrade : Txt$ + "," : EndIf
 
 Next
 
 ; Affiche le texte dans son Gadget
 AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ )
 LigneTxt + 1
 Ligne + 1
 
 Next
 StopDrawing ( )

 Txt$ = "EndDataSection" : AddGadgetItem( Editor_DatasPb , LigneTxt , Txt$ ) : LigneTxt + 1
 
 Else ; La liste est vide
 ClearGadgetItems ( Editor_DatasPb )
 ResizeGadget ( GadgetImage_PaletteBmp , #PB_Ignore , #PB_Ignore , LargImage , Larg )
 SetGadgetAttribute ( ScrollArea_PaletteBmp , #PB_ScrollArea_InnerWidth , LargImage + 10 ) ; +10 pour les ascenceurs
 SetGadgetAttribute ( ScrollArea_PaletteBmp , #PB_ScrollArea_InnerHeight , HautImage + 10 ) ; +10 pour les ascenceurs
 SetGadgetAttribute ( ScrollArea_PaletteBmp , #PB_ScrollArea_ScrollStep , Larg )
 Img_PaletteBmp = CreateImage( #PB_Any , LargImage , Larg , 24 , #Black )
 
 EndIf
 
 SetGadgetState ( GadgetImage_PaletteBmp , ImageID( Img_PaletteBmp ) ) ; Affiche l'image
 
EndProcedure


; *****************
; La boucle principale
Repeat
 Event = WaitWindowEvent ()
 Select Event
 Case #PB_Event_Menu
 Select EventMenu ()
 EndSelect
 
 Case #PB_Event_Gadget
 Select EventGadget ()
 Case ButtonQuitter
 BoutonQuitterOnClick ( EventType() )
 Case ButtonImage_Couleur
 ButtonImage_CouleurOnClick ( EventType() )
 Case Combo_NbDegrade
 Combo_NbDegradeOnClick ( EventType() )
 
 Case ButtonImage_ExportBmp
  ButtonImage_ExportBmpOnClick ( EventType() )
 Case ButtonImage_ExportPb
  ButtonImage_ExportPbOnClick ( EventType() )
 Case Button_AjouterDegrade
  Button_AjouterDegradeOnClick ( EventType() )
 Case Button_NouvellePalette
  Button_NouvellePaletteOnClick ( EventType() )
 Case ButtonImage_Annuler
  ButtonImage_AnnulerOnClick ( EventType() )
 Case ButtonImage_CopieTxt
  ButtonImage_CopieTxtOnClick ( EventType() )
 Case ButtonImage_CopieBmp
  ButtonImage_CopieBmpOnClick ( EventType() )
 
  EndSelect
 EndSelect
 
Until Event = #PB_Event_CloseWindow


Images des boutons : DatasImages.pb

Code : Tout sélectionner

 

;
; Ce fichier a été créé avec : ExtractDatasImages256
; Le code source ici
; https://www.purebasic.fr/french/viewtopic.php?t=19328
;
; Nom du source : DatasImages.pb
;
; ****************************************
; ** Partie commune à toutes les images **
; **   **
Global Dim MesCouleurs .l ( 1 )

Procedure ChargePalette ( )
 Protected .a N , I
 Read .a N
 ReDim MesCouleurs( N - 1 )
 For I = 0 To N -1
 Read .l MesCouleurs( I )
 Next
EndProcedure
Procedure DessineImage( )
 Protected .a X , Y , C , Larg , Haut
 Protected .i NouvelleImage
 Read .a Larg
 Read .a Haut
 NouvelleImage = CreateImage( #PB_Any , Larg , Haut )
 StartDrawing ( ImageOutput( NouvelleImage ) )
 For Y = 0 To Haut - 1
 For X = 0 To Larg - 1
 Read .a C
 Plot( X , Y , MesCouleurs( C ) )
 Next
 Next
 StopDrawing() 
ProcedureReturn NouvelleImage
EndProcedure


; Initialisation des images
Restore DataPalette_Annuler
ChargePalette ( )
Restore DataImage_Annuler
Global .i Image_Annuler = DessineImage( )

Restore DataPalette_Copier
ChargePalette ( )
Restore DataImage_Copier
Global .i Image_Copier = DessineImage( )

Restore DataPalette_ExportBmp
ChargePalette ( )
Restore DataImage_ExportBmp
Global .i Image_ExportBmp = DessineImage( )

Restore DataPalette_ExportPb
ChargePalette ( )
Restore DataImage_ExportPb
Global .i Image_ExportPb = DessineImage( )



DataSection
DataPalette_Annuler:
Data .a 142
Data .l $00FFFFFF , $00F7D9B3 , $00F2C58C , $00F5D7B2 , $00ECB065 , $00F4D6B1 , $00E9AD63 , $00FFE599
Data .l $00F3D5B0 , $00E6AA61 , $00FFDF93 , $00F1D3AF , $00E3A75E , $00FFE498 , $00FBCF83 , $00FDD68A
Data .l $00EFD1AD , $00E0A45B , $00FEE397 , $00F8CA7E , $00F6C276 , $00FBD286 , $00EDCFAC , $00DCA059
Data .l $00FEE195 , $00F6C579 , $00F3BC70 , $00F8CD81 , $00E5B882 , $00EBCDAA , $00D89C55 , $00FDDE92
Data .l $00F3C074 , $00F0B66A , $00F6C87C , $00FCD98D , $00FBD88C , $00FBD78B , $00FBD68A , $00FAD589
Data .l $00FAD488 , $00FAD387 , $00F9D286 , $00F9D185 , $00F9D084 , $00F8CF83 , $00E9CBA9 , $00D49852
Data .l $00FCDC90 , $00F2BD71 , $00EEB367 , $00F2BF73 , $00E7C9A7 , $00D0944F , $00FCDA8E , $00F2BC70
Data .l $00EEB266 , $00ECB064 , $00E3A75B , $00D99D51 , $00D4984C , $00CF9347 , $00CD9145 , $00E5C8A6
Data .l $00CB904C , $00E9AD61 , $00CE9246 , $00CC9044 , $00DFA95D , $00E3C5A4 , $00C78B49 , $00F9D387
Data .l $00DEA151 , $00D09442 , $00CF9241 , $00D69F4E , $00E1C3A3 , $00C38745 , $00F0C672 , $00D89836
Data .l $00DCA041 , $00E0A84B , $00DFA74A , $00DFA649 , $00DEA548 , $00DEA547 , $00DEA446 , $00DDA345
Data .l $00DDA244 , $00DDA243 , $00DCA142 , $00DFA648 , $00DFC1A1 , $00BF8342 , $00F0C15D , $00E29F26
Data .l $00E8AD3D , $00D0A372 , $00DDBFA0 , $00BB7F40 , $00F5C04A , $00EEA717 , $00F1B22C , $00DBBD9E
Data .l $00B77B3D , $00FBC037 , $00F8AE09 , $00FAB61E , $00DABC9D , $00B4783A , $00FFBF27 , $00FFB812
Data .l $00D8BA9C , $00B17538 , $00FFBC1D , $00FEFEFE , $00F9F9F9 , $00F3F3F3 , $00ECECEC , $00E7E7E7
Data .l $00BCA389 , $00AE7236 , $00E5E5E5 , $00E6E6E6 , $00E9E9E9 , $00EDEDED , $00F1F1F1 , $00F6F6F6
Data .l $00FBFBFB , $00FDFDFD , $00F4F4F4 , $00DADADA , $00D0D0D0 , $00CCCCCC , $00B69D85 , $00A37E5A
Data .l $00CDCDCD , $00D3D3D3 , $00DBDBDB , $00E4E4E4 , $00EEEEEE , $00F7F7F7
DataImage_Annuler:
Data .a 24 , 24
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$04,$04,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$05,$06,$07,$06,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$08,$09,$07,$0A,$09,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$0B,$0C,$0D,$0E,$0F,$0C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$10,$11,$12,$13,$14,$15,$11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$16,$17,$18,$19,$1A,$1A,$1B,$17,$17,$17,$17,$17,$17,$17,$17,$17,$17,$17,$1C,$00
Data .a $00,$00,$00,$1D,$1E,$1F,$20,$21,$21,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$1E,$00
Data .a $00,$00,$2E,$2F,$30,$31,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$33,$2F,$00
Data .a $00,$34,$35,$36,$37,$38,$38,$38,$38,$39,$3A,$3B,$3C,$3D,$3E,$3E,$3D,$3C,$3B,$3A,$39,$31,$35,$00
Data .a $00,$3F,$40,$24,$38,$38,$38,$41,$3B,$42,$43,$43,$43,$43,$43,$43,$43,$43,$43,$43,$42,$44,$40,$00
Data .a $00,$00,$45,$46,$47,$39,$48,$49,$4A,$4A,$4A,$4A,$4A,$4A,$4A,$4A,$4A,$4A,$4A,$4A,$4A,$4B,$46,$00
Data .a $00,$00,$00,$4C,$4D,$4E,$4F,$4F,$4F,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$4D,$00
Data .a $00,$00,$00,$00,$5C,$5D,$5E,$5F,$5F,$5F,$60,$5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D,$5D,$61,$00
Data .a $00,$00,$00,$00,$00,$62,$63,$64,$65,$65,$66,$63,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$67,$68,$69,$6A,$6B,$68,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$6C,$6D,$6E,$6F,$6D,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$70,$71,$72,$71,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$73,$74,$75,$76,$77,$78,$79,$79,$7A,$7B,$7C,$7D,$7E,$7F,$80,$73,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$81,$82,$77,$83,$84,$85,$86,$87,$85,$88,$89,$8A,$8B,$8C,$8D,$73,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$73,$74,$75,$76,$77,$7A,$7A,$7A,$7A,$7B,$7C,$7D,$7E,$7F,$80,$73,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

DataPalette_Copier:
Data .a 89
Data .l $00FFFFFF , $00A89A8E , $00BBA799 , $00B0A396 , $00765F4B , $00ECE9E7 , $00B5A193 , $00B9ABA0
Data .l $00D1C9C2 , $00E2DDD8 , $00FEFDFB , $00FDFBF7 , $00FDF9F3 , $00B09B8C , $00C1B4A9 , $00D6CEC7
Data .l $00E1DBD4 , $00FDFAF5 , $00FDF9F2 , $00FCF7EE , $00AA9586 , $00C9BCB2 , $00DBD3CD , $00BCA89A
Data .l $00E0D9D0 , $00FCF8F0 , $00FCF6EC , $00FBF5E8 , $00A48F7F , $00D1C4BB , $009D8877 , $00907A68
Data .l $00836D59 , $00E0D7CC , $00FBF6EA , $00FBF4E6 , $00FAF2E3 , $009E8978 , $00998372 , $00E0D9D1
Data .l $00E0D8CD , $00E0D7CA , $00DFD5C7 , $00FBF3E5 , $00FAF1E1 , $00F9F0DD , $00937D6C , $00BAA697
Data .l $00B5A392 , $00B19F8B , $00AC9C86 , $00A8987F , $00A3957A , $00F9EDD7 , $008D7765 , $00FCF7ED
Data .l $00FBF5E9 , $00FAF2E2 , $00FAF0DE , $00F9EEDA , $00F8ECD6 , $00F8EBD2 , $0088715F , $00FBF4E8
Data .l $00F7E8CC , $00826B58 , $00F8EDD6 , $00F8EBD3 , $00F7E9CF , $00F7E8CB , $00F6E6C7 , $00927C6B
Data .l $007C6652 , $00F9EFDD , $00F5E3C1 , $00C8BBB2 , $0076604B , $00F8EDD7 , $00F7EACF , $00F6E4C4
Data .l $00F5E3C0 , $00CDB9A3 , $00705945 , $006E5742 , $00D4D4D4 , $00C6C6C6 , $00F4E1BC , $00CBCBCB
Data .l $00F1F1F1
DataImage_Copier:
Data .a 24 , 24
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$01,$02,$02,$02,$02,$02,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$00,$03,$04,$05,$00,$00,$00,$00,$06,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$00,$07,$08,$04,$09,$0A,$0B,$0C,$00,$0D,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$00,$0E,$0F,$00,$04,$10,$11,$12,$13,$00,$14,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$00,$15,$16,$00,$17,$04,$18,$19,$1A,$1B,$00,$1C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$1D,$14,$1E,$1F,$20,$04,$21,$22,$23,$24,$00,$25,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$26,$05,$10,$27,$28,$29,$2A,$2B,$2C,$2D,$00,$26,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$2E,$00,$0C,$2F,$30,$31,$32,$33,$34,$35,$00,$2E,$00,$00,$01,$02,$02,$02,$02,$02,$02,$00,$00
Data .a $00,$36,$00,$37,$38,$2B,$39,$3A,$3B,$3C,$3D,$00,$36,$00,$03,$04,$05,$00,$00,$00,$00,$06,$00,$00
Data .a $00,$3E,$00,$3F,$2F,$30,$31,$32,$33,$34,$40,$00,$3E,$07,$08,$04,$09,$0A,$0B,$0C,$00,$0D,$00,$00
Data .a $00,$41,$00,$39,$3A,$3B,$42,$43,$44,$45,$46,$00,$47,$0F,$00,$04,$10,$11,$12,$13,$00,$14,$00,$00
Data .a $00,$48,$00,$49,$2F,$30,$31,$32,$33,$34,$4A,$4B,$16,$00,$17,$04,$18,$19,$1A,$1B,$00,$1C,$00,$00
Data .a $00,$4C,$00,$4D,$43,$4E,$45,$46,$4F,$50,$51,$14,$1E,$1F,$20,$04,$21,$22,$23,$24,$00,$25,$00,$00
Data .a $00,$52,$00,$00,$00,$00,$00,$00,$00,$00,$26,$05,$10,$27,$28,$29,$2A,$2B,$2C,$2D,$00,$26,$00,$00
Data .a $00,$53,$53,$53,$53,$53,$53,$53,$53,$53,$2E,$00,$0C,$2F,$30,$31,$32,$33,$34,$35,$00,$2E,$00,$00
Data .a $54,$55,$55,$55,$55,$55,$55,$55,$55,$55,$36,$00,$37,$38,$2B,$39,$3A,$3B,$3C,$3D,$00,$36,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3E,$00,$3F,$2F,$30,$31,$32,$33,$34,$40,$00,$3E,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$41,$00,$39,$3A,$3B,$42,$43,$44,$45,$46,$00,$41,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$48,$00,$49,$2F,$30,$31,$32,$33,$34,$4A,$00,$48,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$4C,$00,$4D,$43,$4E,$45,$46,$4F,$50,$56,$00,$4C,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$52,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$52,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$53,$53,$53,$53,$53,$53,$53,$53,$53,$53,$53,$53,$00,$00
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$54,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$55,$57,$58

DataPalette_ExportBmp:
Data .a 127
Data .l $00FFFFFF , $00D298BF , $00C377AA , $00CCCCBB , $00C275A8 , $00F2A6D9 , $00EEA2D5 , $00C174A8
Data .l $00EDA1D4 , $00E498CB , $00FEFEFD , $00FDFDFB , $00C976AD , $00C073A6 , $00ECA0D3 , $00E397CA
Data .l $00FDFDFA , $00FBFBF7 , $00BE71A5 , $00EA9ED1 , $00E195C8 , $00FCFCF7 , $00F8F8F3 , $00BD70A4
Data .l $00E99DD0 , $00E094C7 , $00FAFAF3 , $00F5F5EE , $00BC6EA2 , $00E79BCE , $00DE92C5 , $00F9F9EF
Data .l $00F1F1E8 , $00BA6CA0 , $00E599CC , $00DC90C3 , $00F7F7EC , $00EEEEE3 , $00B8699E , $00DA8EC1
Data .l $00F6F6E8 , $00EBEBDE , $00B6679D , $00D88CBF , $00F4F4E6 , $00E9E9DA , $00B4659B , $00DF93C6
Data .l $00D68ABD , $00EFDCDC , $00F3F3E3 , $00B36399 , $00DD91C4 , $00D488BB , $00B06197 , $00DB8FC2
Data .l $00D286B9 , $00AF5F94 , $00D98DC0 , $00D084B7 , $00A25689 , $00A15588 , $00AC5C92 , $00D78BBE
Data .l $00CE82B5 , $00A4588B , $00C8C8C8 , $00C3C3C3 , $00A5598C , $00AA5A90 , $00D589BC , $00CC80B3
Data .l $00A65A8D , $00C2C0C0 , $00B9B7B7 , $00A95D90 , $00A8588E , $00D387BA , $00CA7EB1 , $00A85C8F
Data .l $00BFBBBB , $00B6B2B2 , $0094487B , $00984B7E , $00AE6295 , $00A5558B , $00D185B8 , $00C87CAF
Data .l $00AB5F92 , $00BCB5B5 , $00B3ACAC , $00B4689B , $009F4F84 , $00C77BAE , $00AD6194 , $00BAAFAF
Data .l $00B1A6A6 , $00B96DA0 , $00CF83B6 , $00CAA2BD , $0095467A , $00B06497 , $00B7A9A9 , $00AEA0A0
Data .l $00BD71A4 , $00C579AC , $00BC9EB2 , $008C3E71 , $00B66A9D , $00B9A8A8 , $00B4A4A4 , $00B26699
Data .l $00C175A8 , $00EFEFEF , $00DEDEDE , $00CECECE , $00A6869C , $0084366A , $00777777 , $00916382
Data .l $00F1F1F1 , $00F7F7F7 , $00EEEEEE , $00E6E6E6 , $00E5E5E5 , $00E8E8E8 , $00F8F8F8
DataImage_ExportBmp:
Data .a 24 , 24
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$01,$02,$02,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$02,$02,$01,$00
Data .a $00,$04,$05,$06,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$06,$05,$04,$00
Data .a $00,$07,$08,$09,$0A,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0B,$0A,$0C,$00,$07,$00
Data .a $00,$0D,$0E,$0F,$10,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$10,$0F,$0E,$0D,$00
Data .a $00,$12,$13,$14,$15,$16,$16,$16,$16,$16,$16,$16,$16,$16,$16,$16,$16,$16,$16,$15,$14,$13,$12,$00
Data .a $00,$17,$18,$19,$1A,$1B,$1B,$1B,$1B,$1B,$1B,$1B,$1B,$1B,$1B,$1B,$1B,$1B,$1B,$1A,$19,$18,$17,$00
Data .a $00,$1C,$1D,$1E,$1F,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$1F,$1E,$1D,$1C,$00
Data .a $00,$21,$22,$23,$24,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$25,$24,$23,$22,$21,$00
Data .a $00,$26,$0F,$27,$28,$29,$29,$29,$29,$29,$29,$29,$29,$29,$29,$29,$29,$29,$29,$28,$27,$0F,$26,$00
Data .a $00,$2A,$14,$2B,$2C,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$2D,$2C,$2B,$14,$2A,$00
Data .a $00,$2E,$2F,$30,$31,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$32,$31,$30,$2F,$2E,$00
Data .a $00,$33,$34,$35,$35,$35,$35,$35,$35,$35,$35,$35,$35,$35,$35,$35,$35,$35,$35,$35,$35,$34,$33,$00
Data .a $00,$36,$37,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$38,$37,$36,$00
Data .a $00,$39,$3A,$3B,$3C,$3D,$3D,$3D,$3D,$3D,$3D,$3D,$3D,$3D,$3D,$3C,$3C,$3C,$3C,$3C,$3B,$3A,$39,$00
Data .a $00,$3E,$3F,$40,$41,$42,$43,$43,$43,$43,$43,$43,$43,$43,$42,$41,$02,$02,$02,$44,$40,$3F,$3E,$00
Data .a $00,$45,$46,$47,$48,$49,$4A,$4A,$4A,$4A,$4A,$4A,$4A,$4A,$49,$48,$02,$02,$02,$4B,$47,$46,$45,$00
Data .a $00,$4C,$4D,$4E,$4F,$50,$51,$52,$53,$52,$50,$51,$51,$51,$50,$4F,$02,$02,$02,$54,$4E,$4D,$4C,$00
Data .a $00,$55,$56,$57,$58,$59,$5A,$58,$5B,$58,$59,$5A,$5A,$5A,$59,$58,$02,$02,$02,$5B,$57,$56,$55,$00
Data .a $00,$5C,$3F,$5D,$5E,$5F,$60,$5E,$61,$5E,$5F,$60,$60,$60,$5F,$5E,$02,$02,$02,$61,$5D,$62,$5C,$00
Data .a $00,$63,$64,$30,$65,$66,$67,$65,$68,$65,$66,$67,$67,$67,$66,$65,$02,$02,$02,$68,$69,$40,$64,$00
Data .a $00,$00,$6A,$6B,$6C,$6D,$6E,$6F,$70,$6F,$6D,$6E,$6E,$6E,$6D,$6F,$02,$02,$02,$70,$47,$56,$6B,$00
Data .a $71,$72,$73,$74,$75,$76,$76,$76,$76,$76,$76,$76,$76,$76,$76,$75,$75,$75,$75,$75,$75,$75,$77,$78
Data .a $79,$7A,$7B,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7C,$7D,$78,$7E

DataPalette_ExportPb:
Data .a 112
Data .l $00FFFFFF , $007F7F7F , $00555555 , $00CCCCBB , $00535353 , $00848484 , $00808080 , $00525252
Data .l $00767676 , $00FEFEFD , $00FDFDFB , $005B5B5B , $00515151 , $007E7E7E , $00757575 , $00FDFDFA
Data .l $00FBFBF7 , $004F4F4F , $007C7C7C , $00737373 , $00FCFCF7 , $00F8F8F3 , $004E4E4E , $007B7B7B
Data .l $00727272 , $00FAFAF3 , $00F5F5EE , $004C4C4C , $00797979 , $00707070 , $00F9F9EF , $00F1F1E8
Data .l $004A4A4A , $00777777 , $006E6E6E , $00F7F7EC , $00EEEEE3 , $00484848 , $006C6C6C , $00F6F6E8
Data .l $00EBEBDE , $00464646 , $006A6A6A , $00F4F4E6 , $00E9E9DA , $00444444 , $00717171 , $00686868
Data .l $00D3D3C7 , $00F3F3E3 , $00424242 , $006F6F6F , $00666666 , $00404040 , $006D6D6D , $00646464
Data .l $003E3E3E , $006B6B6B , $00626262 , $00343434 , $00333333 , $003B3B3B , $00696969 , $00606060
Data .l $00363636 , $00C8C8C8 , $00C3C3C3 , $00373737 , $00393939 , $00676767 , $005E5E5E , $00383838
Data .l $00C2C0C0 , $00B9B7B7 , $00656565 , $005C5C5C , $003A3A3A , $00BFBBBB , $00B6B2B2 , $00262626
Data .l $00292929 , $00636363 , $005A5A5A , $003D3D3D , $00BCB5B5 , $00B3ACAC , $002D2D2D , $00595959
Data .l $003F3F3F , $00BAAFAF , $00B1A6A6 , $004B4B4B , $00919191 , $00242424 , $00B7A9A9 , $00AEA0A0
Data .l $00575757 , $008D8D8D , $001C1C1C , $00B9A8A8 , $00B4A4A4 , $00EFEFEF , $00DEDEDE , $00CECECE
Data .l $00151515 , $00F1F1F1 , $00F7F7F7 , $00EEEEEE , $00E6E6E6 , $00E5E5E5 , $00E8E8E8 , $00F8F8F8

DataImage_ExportPb:
Data .a 24 , 24
Data .a $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
Data .a $00,$01,$02,$02,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$03,$02,$02,$01,$00
Data .a $00,$04,$05,$06,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$06,$05,$04,$00
Data .a $00,$07,$01,$08,$09,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$09,$0B,$00,$07,$00
Data .a $00,$0C,$0D,$0E,$0F,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$0F,$0E,$0D,$0C,$00
Data .a $00,$11,$12,$13,$14,$15,$15,$15,$15,$15,$15,$15,$15,$15,$15,$15,$15,$15,$15,$14,$13,$12,$11,$00
Data .a $00,$16,$17,$18,$19,$1A,$1A,$1A,$1A,$1A,$1A,$1A,$1A,$1A,$1A,$1A,$1A,$1A,$1A,$19,$18,$17,$16,$00
Data .a $00,$1B,$1C,$1D,$1E,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1F,$1E,$1D,$1C,$1B,$00
Data .a $00,$20,$21,$22,$23,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$23,$22,$21,$20,$00
Data .a $00,$25,$0E,$26,$27,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28,$28,$27,$26,$0E,$25,$00
Data .a $00,$29,$13,$2A,$2B,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2C,$2B,$2A,$13,$29,$00
Data .a $00,$2D,$2E,$2F,$30,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$30,$2F,$2E,$2D,$00
Data .a $00,$32,$33,$34,$34,$34,$34,$34,$34,$34,$34,$34,$34,$34,$34,$34,$34,$34,$34,$34,$34,$33,$32,$00
Data .a $00,$35,$36,$37,$37,$37,$37,$37,$37,$37,$37,$37,$37,$37,$37,$37,$37,$37,$37,$37,$37,$36,$35,$00
Data .a $00,$38,$39,$3A,$3B,$3C,$3C,$3C,$3C,$3C,$3C,$3C,$3C,$3C,$3C,$3B,$3B,$3B,$3B,$3B,$3A,$39,$38,$00
Data .a $00,$3D,$3E,$3F,$40,$41,$42,$42,$42,$42,$42,$42,$42,$42,$41,$40,$02,$02,$02,$43,$3F,$3E,$3D,$00
Data .a $00,$44,$45,$46,$47,$48,$49,$49,$49,$49,$49,$49,$49,$49,$48,$47,$02,$02,$02,$3D,$46,$45,$44,$00
Data .a $00,$43,$4A,$4B,$4C,$4D,$4E,$4F,$50,$4F,$4D,$4E,$4E,$4E,$4D,$4C,$02,$02,$02,$35,$4B,$4A,$43,$00
Data .a $00,$3B,$51,$52,$53,$54,$55,$53,$29,$53,$54,$55,$55,$55,$54,$53,$02,$02,$02,$29,$52,$51,$3B,$00
Data .a $00,$56,$2A,$57,$58,$59,$5A,$58,$5B,$58,$59,$5A,$5A,$5A,$59,$58,$02,$02,$02,$5B,$57,$3A,$56,$00
Data .a $00,$5C,$5D,$2F,$32,$5E,$5F,$32,$11,$32,$5E,$5F,$5F,$5F,$5E,$32,$02,$02,$02,$11,$60,$3F,$5D,$00
Data .a $00,$00,$61,$62,$25,$63,$64,$2D,$04,$2D,$63,$64,$64,$64,$63,$2D,$02,$02,$02,$04,$46,$51,$62,$00
Data .a $65,$66,$67,$08,$68,$21,$21,$21,$21,$21,$21,$21,$21,$21,$21,$68,$68,$68,$68,$68,$68,$68,$20,$69
Data .a $6A,$6B,$6C,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6D,$6E,$69,$6F


EndDataSection


; ; Supprimez les points-virgules des lignes suivantes pour tester
; Win0 = OpenWindow( #PB_Any , 0 , 0 , 200 , 200 , "Les 20 premières images" , #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
; ImageGadget( 0 , 2 , 2 , 24 , 24 , ImageID( Image_Annuler ) )
; ImageGadget( 1 , 28 , 2 , 24 , 24 , ImageID( Image_Copier ) )
; ImageGadget( 2 , 54 , 2 , 24 , 24 , ImageID( Image_ExportBmp ) )
; ImageGadget( 3 , 80 , 2 , 24 , 24 , ImageID( Image_ExportPb ) )
; ResizeWindow( Win0 , #PB_Ignore , #PB_Ignore , 106 , 28 )
; Repeat
; Event = WaitWindowEvent()
; Until Event = #PB_Event_CloseWindow


Re: Générateur de Palette de dégradé de couleur

Publié : jeu. 31/juil./2025 14:48
par Mindphazer
Bonjour plabouro472,

j'ai testé, j'avoue avoir du mal à saisir la finalité ! :oops:

Par contre, je ne comprends pas pourquoi ton Combo_NbDegrade est désactivé. Il y a une raison particulière ?
Si on supprime la ligne DisableGadget ( Combo_NbDegrade , #True ), le Combo reste accessible et on peut modifier le nombre de dégradés...

Re: Générateur de Palette de dégradé de couleur

Publié : jeu. 31/juil./2025 17:12
par plabouro472
La comboBox est déverrouillé lorsque l'on crée une nouvelle palette pour choisir le nombre de dégradé souhaité.
La finalité est de générer une palette de couleur pour une application de dessin.
La documentation en pdf est disponible avec les sources en téléchargement. Voir plus haut.