Example #1
0
        public void idrataMaschera(Model.Maschera maschera, bool ancheOriginale)
        {
            string dirMaschere  = PathUtil.getCartellaMaschera(maschera.tipo);
            string dirMiniature = Path.Combine(dirMaschere, PathUtil.THUMB);

            string nomeFileMiniatura = Path.Combine(dirMiniature, maschera.nomeFile);

            // Provino (carico solo per 80 pixel)
            var bmp1 = loadBitmapConDimensione(nomeFileMiniatura, 80);

            maschera.imgProvino = new ImmagineWic(bmp1);

            // Originale (più pesante)
            if (ancheOriginale)
            {
                string nomeFileOriginale = Path.Combine(dirMaschere, maschera.nomeFile);
                // uso la funzione standard
                // var bmp2 = loadMascheraDaDisco( nomeFileMaschera );
                // maschera.imgOriginale = new ImmagineWic( bmp2 );
                maschera.imgOriginale = load(nomeFileOriginale);
            }
        }
Example #2
0
        /// <summary>
        /// Ricavo la lista di tutte le maschere (senza idratare le immagini, solo i nomi)
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public List <Digiphoto.Lumen.Model.Maschera> caricaListaMaschere(FiltroMask filtro)
        {
            string dirMaschere = getCartellaMaschera(filtro);

            if (!Directory.Exists(dirMaschere))
            {
                return(null);
            }

            List <Digiphoto.Lumen.Model.Maschera> maschere = new List <Digiphoto.Lumen.Model.Maschera>();

            // preparo la cartella per le miniature
            string dirMiniature = Path.Combine(dirMaschere, PathUtil.THUMB);

            if (!Directory.Exists(dirMiniature))
            {
                Directory.CreateDirectory(dirMiniature);
            }

            // Faccio giri diversi per i vari formati grafici che sono indicati nella configurazione (jpg, tif)
            foreach (string estensione in Configurazione.estensioniGraficheAmmesse)
            {
                // Questa è la lista dei files di dimensioni grandi.
                string [] nomiFilesMaschere = Directory.GetFiles(dirMaschere, searchPattern: "*" + estensione, searchOption: SearchOption.TopDirectoryOnly);

                // Adesso controllo che per ogni file grande, esista la sua miniatura.
                foreach (string nomeFileMaschera in nomiFilesMaschere)
                {
                    FileInfo fi = new FileInfo(nomeFileMaschera);

                    string nomeFileMiniatura = Path.Combine(dirMiniature, fi.Name);

                    if (creaMiniaturaMaschera(nomeFileMaschera, nomeFileMiniatura))
                    {
                        Digiphoto.Lumen.Model.Maschera msk = new Model.Maschera();

                        // Metto solo il nome del file senza path
                        msk.nomeFile = fi.Name;
                        msk.tipo     = filtro;

                        maschere.Add(msk);
                    }
                }
            }

            // Prima di ritornare la lisa, controllo se nella cartella è presente un file di testo
            // con eventuale ordinamento
            string nomeFileOrdinamento = Path.Combine(dirMaschere, "ordinamento.txt");
            List <Model.Maschera> listaOrdinata;

            if (File.Exists(nomeFileOrdinamento))
            {
                List <string> mioOrdinam = new List <string>(File.ReadAllLines(nomeFileOrdinamento));
                listaOrdinata = maschere.OrderBy(d => mioOrdinam.IndexOf(d.nomeFile) < 0 ? 9999 : mioOrdinam.IndexOf(d.nomeFile)).ToList();
            }
            else
            {
                // Ordino per nome
                listaOrdinata = maschere.OrderBy(d => d.nomeFile).ToList();
            }

            return(listaOrdinata);
        }