code: function(bounds, zoomChanged, dragging) {
          OpenLayers.Layer.prototype.moveTo.apply(this, arguments);
  
          var firstRendering = (this.tile == null);
  
          if(zoomChanged || firstRendering) {
  
              //determine new tile size
              this.setTileSize();
  
              //determine new position (upper left corner of new bounds)
              var ulPx = this.map.getLayerPxFromLonLat({
                  lon: this.extent.left,
                  lat: this.extent.top
              });
  
              if(firstRendering) {
                  //create the new tile
                  this.tile = new OpenLayers.Tile.Image(this, ulPx, this.extent, 
                                                        null, this.tileSize);
                  this.addTileMonitoringHooks(this.tile);
              } else {
                  //just resize the tile and set it's new position
                  this.tile.size = this.tileSize.clone();
                  this.tile.position = ulPx.clone();
              }
              this.tile.draw();
          }
      }
docs: Method: moveTo
  Create the tile for the image or resize it for the new resolution
  
  Parameters:
  bounds - {<OpenLayers.Bounds>}
  zoomChanged - {Boolean}
  dragging - {Boolean}