@startuml skinparam classAttributeIconSize 0 skinparam packageStyle rectangle skinparam dpi 50 package "Model - Huffman & Compression" { class FrequencyTable #64B5F6 class HuffmanTree #64B5F6 class CanonicalCode #64B5F6 } package "Model - Images & Fichiers" { class RGBImage #64B5F6 class BitOutputStream #64B5F6 class PIFWriter #64B5F6 } package "Controller" { class ConverterController #FFA500 class ThreadSauvegardePIF #FFA500 } package "View - Interface" { class ConverterWindow #66BB6A } ' Relations principales ConverterController --> RGBImage : charge ConverterController --> FrequencyTable : calcule ConverterController --> HuffmanTree : génère ConverterController --> CanonicalCode : construit ConverterController --> ConverterWindow : met à jour ConverterWindow --> ThreadSauvegardePIF : lance ThreadSauvegardePIF --> PIFWriter : déclenche PIFWriter --> BitOutputStream : utilise PIFWriter --> RGBImage : encode @enduml