Pregunta

Estoy usando WPF para una tubería de cambio de tamaño de imagen que ha estado funcionando maravillosamente bajo .NET v3.5. Acabo de actualizar el proyecto para apuntar a V4.0 y ahora todas mis imágenes redimensionadas están muy alias. Ninguno del código de la tubería de imagen ha cambiado.

  1. ¿Ha cambiado una configuración de WPF predeterminada entre v3.5 y v4.0?

  2. ¿Cómo controlo el disco de mis imágenes de mapa de bits redimensionada en WPF?

Estoy usando BitmapImage, DrawingVisual, DrawingContext, RenderTargetBitmap, BitmapEncoder, y BitmapFrame Pero no estoy viendo ninguna propiedad relacionada con la transmisión. GDI+ tenía un montón de configuraciones, así que supongo que me estoy perdiendo algo.

Actualizar: Parece que todas las soluciones que he visto asumen un objeto de ventana o un entorno XAML. Esto se ejecuta dentro de un servicio de Windows que no tiene UI. Necesito una forma de afectar programáticamente esta configuración.

Cambié específicamente de GDI+ a WPF porque GDI+ tiene fugas de memoria en procesos de larga duración como servicios y aplicaciones web.

¿Fue útil?

Solución

La única forma en que he podido afectar la configuración de BitmapScalingMode es heredar del DrawingVisual clase y configúrelo a través de su accesor protegido:

// exposes BitmapScalingMode (also works for other protected properties)
public class MyDrawingVisual : DrawingVisual
{
    public BitmapScalingMode BitmapScalingMode
    {
        get { return this.VisualBitmapScalingMode; }
        set { this.VisualBitmapScalingMode = value; }
    }
}

Si alguien más sabe de una mejor manera de establecer esto, estaría emocionado de saberlo.

Parece que esto funcionaría:

RenderOptions.SetBitmapScalingMode(myDrawingVisual, BitmapScalingMode.HighQuality);

... pero no lo hace. Aparentemente, estar fuera del tiempo de ejecución de Windowing XAML debe significar que no puede establecer los valores apropiados.

Otros consejos

El BitMapsCalingMode predeterminado fue FANT en 3.0 pero en 4.0 ahora es bilineal. Puede cambiar el valor predeterminado de algunas formas diferentes. Una pareja descrito aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top