none
Como invertir imagen sin usar ScaleTransform? RRS feed

  • Pregunta

  • Hola.... mi pregunta es la siguiente:

    Si tengo una instancia de Image en un canvas, y quiero que en determinado evento se invierta (como el reflejo en un espejo), de que forma puedo lograrlo diferente de esta:

    img.RenderTransform = new ScaleTransform() { ScaleX = -1 };
    img.RenderTransformOrigin = new Point(0.5d, 0.5d);

    esta forma funciona perfecto, pero por otros usos que le doy a la imagen, preferiria usar alguna forma que la imagen como tal se invierta, no el control Image...

    sábado, 31 de marzo de 2012 3:59

Respuestas

Todas las respuestas

  • Hola Sergio,

    Podrías usar un RotateTransform con un ángulo de 180º:

    var rotate = new RotateTransform();
    rotate.Angle = 180;
    rotate.CenterX = centreX;
    rotate.CenterY = centreY;
    

    Y si quieres utilizar varias transformaciones para un solo objeto, siempre puedes usar un grupo:

    var group = new TransformGroup();
    
    var rotate = new RotateTransform();
    rotate.Angle = 180;
    rotate.CenterX = centreX;
    rotate.CenterY = centreY;
    
    var scale = new ScaleTransform { ScaleX = 2 };
    
    group.Children.Add(rotate);
    group.Children.Add(scale);
    
    img.RenderTransform = group;

    Un saludo,


    Fernanando Escolar - http://www.programandonet.com/ - @fernandoescolar

    lunes, 2 de abril de 2012 8:48
  • Con WriteableBitmap Extension 

    result =writeableBitmap.Flip(WriteableBitmapExtensions.FlipMode.Vertical);
    
    //o
    
    
    
    result= writeableBitmap.Flip(WriteableBitmapExtensions.FlipMode.Horizontal);


    lunes, 2 de abril de 2012 16:21
  • Hola a todos!

    Creo que lo más acertado es lo que propone Bazookao. El rotateTransform modificará la forma en que la imagen responde a los movimientos si no me equivoco.

    Un saludo!


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    martes, 3 de abril de 2012 6:41
    Moderador
  • @Fernando Escolar no queria rotarla sino invertirla ... pero gracias por atender :)

    @Bazookao Gracias... probado y aprobado :)

    jueves, 5 de abril de 2012 0:18