Files
AsyncDisplayKit/_docs/debug-tool-pixel-scaling.md
2016-04-19 16:28:39 -05:00

1.6 KiB
Raw Blame History

title, layout, permalink, next
title layout permalink next
Image Scaling docs /docs/debug-tool-pixel-scaling.html debug-tool-ASRangeController.html

##Visualize ASImageNode.images pixel scaling## This debug feature adds a red text overlay on the bottom right hand corner of an ASImageNode if (and only if) the images size in pixels does not match its bounds size in pixels, e.g.

imageSizeInPixels = image.size * image.scale
boundsSizeInPixels = bounds.size * contentsScale
scaleFactor = imageSizeInPixels / boundsSizeInPixels

if (scaleFactor != 1.0) {
      NSString *scaleString = [NSString stringWithFormat:@"%.2fx", scaleFactor];
      _debugLabelNode.hidden = NO;
}

This debug feature is useful for quickly determining if you are

  • downloading and rendering excessive amounts of image data
  • upscaling a low quality image

In the screenshot below of an app with this debug feature enabled, you can see that the avatar image is unnecessarily large (9x too large) for its bounds size and that the center picture is more optimized, but not perfectly so. If you control your own endpoint, optimize your API / app to return an optimally sized image.

screen shot 2016-03-25 at 4 04 59 pm ##Usage## In your AppDelegate.m file,

  • import `AsyncDisplayKit+Debug.h`
  • add `[ASImageNode setShouldShowImageScalingOverlay:YES]` at the top of your `didFinishLaunchingWithOptions:` method
Make sure to call this method before initializing any ASImageNodes.