Ejemplo n.º 1
0
        public override IImmagine applica(IImmagine immagineSorgente, Correzione correzione)
        {
            _giornale.Debug("Richiesta correzione: " + correzione.GetType().Name);

            long   calcW, calcH;
            Resize resizeCorrezione = (Resize)correzione;

            ResizeCorrettore.calcolaEsattaWeH(immagineSorgente, resizeCorrezione.latoMax, out calcW, out calcH);

            BitmapSource bitmapSource = ((ImmagineWic)immagineSorgente).bitmapSource;


            /* I dpi sono una indicazione per la stampa.
             * Non impattano sui dati dell'immagine.
             * Non impattano sulla dimensione dell'immagine.
             * Non impattano sulla qualità dell'immagine.
             * In pratica è solo un "consiglio" per la stampa.
             *
             * Siccome credo che le stampanti termiche/sublimazione se ne fregano di questo parametro (per ovvi motivi)
             * allora me ne sbatto.
             * Occorrebbe fare una prova con una laser o con una InkJet per vedere se il risultato stampato cambia.
             *
             * int quantiDpi;
             * quantiDpi = (int) Math.Max( bitmapSource.DpiX, bitmapSource.DpiY );
             * quantiDpi = (int) Math.Max( quantiDpi, DPI_PROVINO );
             */

            BitmapSource bitmapFrame = Resize(bitmapSource, calcW, calcH, DPI_PROVINO);

            // _giornale.Debug( "effettuato resize" );
            if (bitmapFrame.CanFreeze)
            {
                bitmapFrame.Freeze();
            }
            ImmagineWic immagine = new ImmagineWic(bitmapFrame);

            return(immagine);
        }
Ejemplo n.º 2
0
 public Correttore getCorrettore(Correzione correzione)
 {
     // Se non ce l'ho in cache, allora lo creo.
     return(_correttoreFactory.creaCorrettore(correzione.GetType()));
 }