Zoom imagen sin pixelar en as3

Holas amigos.



En parte gracias a Hexluv.

Sere breve, hay dos problemas al hacer zoom a una imagen:

1) Cuando se agranda se ve como cortados los bordes.

2) Cuando se hace bien pequeña como para un thumbnail por ejemplo: Los bordes de la imagen pareciera que se retorcieran.

Les tengo la solución para cada uno de estos casos:

1) La clave es colocarle smooth a el bitmap que cargamos en el flash.
Coloco los siguientes ejemplos, ya que esto depende de como hayamos cargado la imagen:
a. Si es de un UILoader entonces:

myUILoader.addEventListener(Event.INIT, initFoto);
function initFoto(e:Event){if(e.currentTarget.content is Bitmap){Bitmap(e.currentTarget.content).smoothing = true;}}


b. Si la foto es cargada con un Loader entonces.

myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);
public function onLoaderReady(e:Event) {   
              tfcargando.text = "";
              if(e.currentTarget.content is Bitmap)
                {
                Bitmap(e.currentTarget.content).smoothing = true;
                }
        }

2) Para el caso de que una imagen se pixele cuando se haga pequeñita, la clave es esta linea en nuestro fla en el primer frame:

stage.quality = StageQuality.BEST;

Espero les sirva.


Sean felices! :)

2 comentarios:

  1. bitmap = Bitmap(loader.content);
    bitmap.x = - bitmap.width * 0.5;
    bitmap.y = - bitmap.height * 0.5;
    bitmap.smoothing = true;

    Ya lo haces en la carga complete, no necesitas marearte tanto XD

    ResponderEliminar
  2. je je... es que quizás muchos cuando comenzamos,necesitamos un poco más de explicación...

    Saludos compañero. Y gracias por tu apoyo. :P

    ResponderEliminar