diff --git a/lib/features/crop/crop_screen.dart b/lib/features/crop/crop_screen.dart index 85f487f1..fad93f22 100644 --- a/lib/features/crop/crop_screen.dart +++ b/lib/features/crop/crop_screen.dart @@ -249,10 +249,10 @@ class _CropScreenState extends State { onScaleUpdate: _onScaleUpdate, child: Stack( children: [ + // 1. L'image brute avec ses transformations Positioned.fill( child: Center( child: Transform( - // TRANSFORMATION GÉOMÉTRIQUE : Conversion des degrés du Slider en Radians transform: Matrix4.identity() ..setTranslationRaw(_offset.dx, _offset.dy, 0) ..scale(_scale, _scale) @@ -268,25 +268,23 @@ class _CropScreenState extends State { ), ), - // LIGNES VERTES PERPENDICULAIRES PROLONGÉES SUR TOUT L'ÉCRAN + // 2. Les lignes vertes de visée prolongées Positioned.fill( child: IgnorePointer( child: Stack( children: [ - // Ligne Horizontale (Prend toute la largeur) Center( child: Container( - width: double.infinity, // S'étend sur toute la zone - height: 1.5, // Ligne ultra fine - color: const Color(0xFF00FF00).withOpacity(0.5), // Vert fluo semi-transparent + width: double.infinity, + height: 1.5, + color: const Color(0xFF00FF00).withOpacity(0.6), ), ), - // Ligne Verticale (Prend toute la hauteur) Center( child: Container( width: 1.5, - height: double.infinity, // S'étend sur toute la zone - color: const Color(0xFF00FF00).withOpacity(0.5), + height: double.infinity, + color: const Color(0xFF00FF00).withOpacity(0.6), ), ), ], @@ -294,6 +292,31 @@ class _CropScreenState extends State { ), ), + // 3. MASQUE OPAQUE EXTÉRIEUR - COINS DROITS ET CARRÉS + Positioned.fill( + child: IgnorePointer( + child: ColorFiltered( + colorFilter: ColorFilter.mode( + const Color(0xFF101214), // Même couleur que le fond de ton écran + BlendMode.srcOut, + ), + child: Stack( + children: [ + // Zone visible : Rectangle parfait sans aucun BorderRadius + Center( + child: Container( + width: _cropSize, + height: _cropSize, + color: Colors.black, // Pas de decoration ni de borderRadius ici ! + ), + ), + ], + ), + ), + ), + ), + + // 4. Ton overlay avec les coins blancs Positioned.fill( child: IgnorePointer( child: CropOverlay(cropSize: _cropSize, showGrid: false),