diff --git a/PlaningDeTavail.md b/PlaningDeTavail.md index a1d9925..c2281f2 100644 --- a/PlaningDeTavail.md +++ b/PlaningDeTavail.md @@ -1,3 +1,4 @@ +<<<<<<< HEAD # Sprint Planning – Projet PIF ## Légende @@ -190,3 +191,197 @@ Objectif : Finalisation complète + livrable final - Diagrammes UML terminés - Makefile opérationnel - Projet soumis proprement sur Gitea +======= +# Sprint Planning – Projet PIF + +## Légende +AD → Algassimou +AA → Ayoub +YB → Youness + +🟥 TODO = À faire +🟨 DOING = En cours +🟩 DONE = Terminé + + +# --------------------------------------- +# SPRINT 1 (13–20 décembre 2025) +# --------------------------------------- +Objectif : Mise en place des fondations techniques +(image, binaire, Huffman, canoniques) + +| US | Assigné | Statut | | Description | +|-------|---------|--------|----|----------------------------------------------------| +| US-D1 | AD | DONE | 🟩 | Implémenter BitInputStream (lecture bit par bit) | +| US-D2 | AD | DONE | 🟩 | Implémenter BitOutputStream (écriture bit par bit) | +| US-D3 | AD | DONE | 🟩 | Générer les tables de fréquences RGB | +| US-D4 | AD | DONE | 🟩 | Construire l’arbre Huffman | +| US-D5 | AA | DONE | 🟩 | Générer les codes Huffman | +| US-D6 | AA | DONE | 🟩 | Générer les codes canoniques | +| US-U5 | YB | DONE | 🟩 | Chargement d’image via ImageIO | +| US-D8 | YB | DONE | 🟩 | Structure RGBImage + Pixel | +| US-P1 | AA | DONE | 🟩 | Interface simple d’affichage des fréquences | +| US-P2 | AD | DONE | 🟩 | Interface simple d’affichage codes Huffman | +| US-P3 | AA | DONE | 🟩 | Interface simple d’affichage codes canoniques | + +## Fichiers à créer – Sprint 1 + +### `src/mimage/` +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `Pixel.java` | Représente un pixel (r, g, b) | US-D8 | +| `RGBImage.java` | Matrice de pixels + utilitaires | US-D8, US-U5 | + +### `src/mhuffman/` +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `FrequencyTable.java` | Stocke les fréquences R/G/B | US-D3 | +| `HuffmanNode.java` | Nœud d’arbre Huffman | US-D4 | +| `HuffmanTree.java` | Construction arbre + génération des codes | US-D4, US-D5 | +| `CanonicalCode.java` | Génération des codes canoniques | US-D6 | + +### `src/util/` +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `BitInputStream.java` | Lecture bit par bit | US-D1 | +| `BitOutputStream.java` | Écriture bit par bit | US-D2 | +| `ByteUtils.java` | Conversion int octets | US-D3 et plus | +| `FileUtils.java` | Méthodes utilitaires fichiers | US-U5 (indirect) | + +### `src/vconverter/` +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `ConverterWindow.java` | Fenêtre du convertisseur | US-P1, US-P2, US-P3 | +| `PreviewPanel.java` | Aperçu de l’image chargée | US-U5 | +| `FrequencyTablePanel.java` | Affichage fréquences RGB | US-P1 | +| `CodeTablePanel.java` | Affichage Huffman + canoniques | US-P2, US-P3 | + +### `src/` (racine) +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `ConverterController.java` | Contrôleur du convertisseur | US-U5, US-D3..D6, US-P1..P3 | +| `Convertisseur.java` | Lancement du convertisseur | — | +--- + +### Résultat attendu Sprint 1 +- Compression entièrement fonctionnelle +- Import d’image opérationnel +- GUI minimaliste affichant fréquences / Huffman / canoniques +- Aucun fichier `.pif` encore écrit + + +# --------------------------------------- +# SPRINT 2 (20–27 décembre 2025) +# --------------------------------------- +Objectif : Écriture du format `.pif` + finalisation convertisseur + +| US | Assigné | Statut | | Description | +|------------|---------|--------|-----|-------------| +| US-D2 | AA | DONE | 🟩 | Vérifier BitOutputStream avec flux réel | +| US-C5 | AD | DONE | 🟩 | Implémenter PIFWriter (header + tables + pixels compressés) | +| US-U6 | AD | DONE | 🟩 | Exporter une image en `.pif` | +| US-P1 | AA | DONE | 🟩 | Finaliser affichage des fréquences | +| US-P2 | AA | DONE | 🟩 | Finaliser affichage codes Huffman | +| US-P3 | AA | DONE | 🟩 | Finaliser affichage codes canoniques | +| US-U7 | AD | DONE | 🟩 | Implémenter l’aperçu (PreviewPanel) | + +## Fichiers à créer – Sprint 2 + +### `src/mpif/` +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `PIFWriter.java` | Écriture du fichier `.pif` | US-C5, US-U6 | + +### `src/vconverter/` (complément) +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `SavePanel.java` en option a voir | Interface de sauvegarde `.pif` | US-U6 | + + +--- + +### Résultat attendu Sprint 2 +- `.pif` généré correctement +- Convertisseur fonctionnel à 80 % +- UI complète pour la consultation des tables +- Aperçu image fonctionnel + + +# --------------------------------------- +# SPRINT 3 (27 décembre 2025 – 3 janvier 2026) +# --------------------------------------- +Objectif : Lecture du fichier `.pif` + visualisateur opérationnel + +| US | Assigné | Statut | | Description | +|----------|---------|--------|-----|-------------| +| US-D7 | AD | DONE | 🟩 | Reconstruire les codes canoniques depuis fichier | +| US-D8 | AD | DONE | 🟩 | Décoder pixels (implémenter PIFReader) | +| US-U1 | YB | WP | 🟨 | Ouvrir `.pif` via argument ou JFileChooser | +| US-U2 | AA | TODO | 🟥 | Afficher l’image dans une fenêtre | +| US-U3 | AA | TODO | 🟥 | Centrer l’image si elle est petite | +| US-U4 | AD | TODO | 🟥 | Déplacement de l’image à la souris | +| US-P6 | AA | TODO | 🟥 | Préparer diagrammes UML | + +## Fichiers à créer – Sprint 3 + +### `src/mpif/` +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `PIFReader.java` | Lecture et décodage du `.pif` | US-D7, US-D8 | + +### `src/vviewer/` +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `ViewerWindow.java` | Fenêtre visualisation | US-U2 | +| `ImagePanel.java` | Affichage + déplacement image | US-U2, US-U3, US-U4 | + +### `src/` +| Nom du fichier | Rôle | US | +|----------------|-------|----| +| `ViewerController.java` | Contrôle du visualisateur | US-U1..U4 | +| `Viewer.java` | Programme principal du visualisateur | US-U1 | + +--- + +### Résultat attendu Sprint 3 +- Visualisateur 100 % fonctionnel +- Lecture complète du format `.pif` +- Image affichée, centrée, déplaçable +- UML structurel prêt pour rapport + + +# --------------------------------------- +# SPRINT 4 (3–10 janvier 2026) +# --------------------------------------- +Objectif : Finalisation complète + livrable final + +| US | Assigné | Statut | | Description | +|------------|---------|--------|-----|-------------| +| US-P5 | AD | TODO | 🟥 | Javadoc complète | +| US-P7 | AD | TODO | 🟥 | Makefile (compilation + jar + exécution) | +| US-P6 | AA | TODO | 🟥 | Finalisation des diagrammes UML | +| Tests | YB | TODO | 🟥 | Tests convertisseur + visualisateur | +| Rapport | AD/AA/YB| TODO | 🟥 | Rédaction rapport complet | +| Livraison | AD/AA/YB| TODO | 🟥 | Vérification dépôt Gitea + JAR exécutables | + +## Fichiers à créer – Sprint 4 + +### Racine creee tout au long +| Nom du fichier | Rôle | +|----------------|-------| +| `Makefile` | Compilation + génération `.jar` | + +### `/doc` +| Nom du fichier | Rôle | +|----------------|-------| +| `rapport.pdf` | Livrable final | +| `UML/___.plantuml` | Sources de diagrammes | + +--- + +### Résultat attendu Sprint 4 +- Rapport PDF validé +- Diagrammes UML terminés +- Makefile opérationnel +- Projet soumis proprement sur Gitea +>>>>>>> 40f71dddd52fc07edc1d47d48d56fd65a2a79fe3 diff --git a/src/fr/iutfbleau/sae/Viewer.java b/src/fr/iutfbleau/sae/Viewer.java index 1e90e89..97446a7 100644 --- a/src/fr/iutfbleau/sae/Viewer.java +++ b/src/fr/iutfbleau/sae/Viewer.java @@ -1,3 +1,4 @@ +<<<<<<< HEAD package fr.iutfbleau.sae; public class Viewer { @@ -5,3 +6,31 @@ public class Viewer { System.out.println("dqkdjqkdjqkdjqkdjqkdj"); } } +======= +package fr.iutfbleau.sae; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +//teste avec ia +private void chargerFichier() { + JTextArea zoneTexte = new JTextArea(); + zoneTexte.setEditable(false); + + try (BufferedReader br = new BufferedReader(new FileReader(fichierPif))) { + String ligne; + while ((ligne = br.readLine()) != null) { + zoneTexte.append(ligne + "\n"); + } + } catch (IOException e) { + JOptionPane.showMessageDialog(this, + "Erreur lors de l'ouverture du fichier", + "Erreur", + JOptionPane.ERROR_MESSAGE); + } + + add(new JScrollPane(zoneTexte), BorderLayout.CENTER); + setVisible(true); +} +>>>>>>> 40f71dddd52fc07edc1d47d48d56fd65a2a79fe3