public static ImageExtension GetImageExtension(CompressionAlgorithmSelected compressorAlgorithmSelected) { switch (compressorAlgorithmSelected) { case (CompressionAlgorithmSelected.WEBPAlgorithm): return(ImageExtension.WEBP); case (CompressionAlgorithmSelected.JPEGAlgorithm): return(ImageExtension.JPEG); } return(ImageExtension.none); }
/* * Avvio compressione e invio */ private void OnButtonClickProcessImage(object sender, EventArgs e) { try { CompressionAlgorithmSelected compressionAlgorithmSelected = CompressionAlgorithmSelectedMethods.AlgorithmSelected(algorithmList.SelectedItem); CompressImage(compressionAlgorithmSelected, Convert.ToString(qualityAlgorithmEntry.Value)); SendFileToServer(compressionAlgorithmSelected); } catch (Exception ex) { DisplayAlert("Errore", ex.Message, "OK"); } }
/* * Invio file al server in base ad algoritmo scelto */ private void SendFileToServer(CompressionAlgorithmSelected compressionAlgorithmSelected) { ImageExtension imageExtension = ImageExtensionMethods.GetImageExtension(compressionAlgorithmSelected); try { CreateJSONFiles(); Send(imageExtension); } catch (Exception e) { throw new Exception(e.Message); } }
/* * Avvio compressione in base ad algoritmo scelto */ private void CompressImage(CompressionAlgorithmSelected info, string quality) { switch (info) { case CompressionAlgorithmSelected.WEBPAlgorithm: int resultWEBP = DependencyService.Get <ICompressorAlgorithm>().CallWEBPCompressorAlgorithm(imageSource, imageCompressDirectory + ".webp", quality); if (resultWEBP != 0) { throw new Exception("Errore di compressione"); } break; case CompressionAlgorithmSelected.JPEGAlgorithm: if (!JPEGCompressorAlgorithm.JPEGCompressor(imageSource, imageCompressDirectory + ".jpg", Convert.ToInt32(quality))) { throw new Exception("Errore di compressione"); } break; case CompressionAlgorithmSelected.none: throw new Exception("Errore selezione algoritmo di compressione'"); } }