C4 - Travis's comment is more correct, your best option is probably to animate the animation. You will want to take the QA1703 code to capture the screen, but adjust the size of the context you are creating in UIGraphicsBeginImageContextWithOptions and change (CTM) accordingly immediately after calling UIGraphicsGetCurrentContext . So, just by typing as I write this, your adjustments will lead to something like:
- (UIImage*)screenshotWithScale:(CGFloat)scale {
With scale = 1.0 you will return a UIImage exactly equal to the screen. With scale = 0.5 you get one and a half the number of pixels back and forth, with scale = 0.25 you get a quarter of the number of pixels back and forth, etc.
You can then put this UIImage into a UIImageView and set its level-up filter to kCAFilterNearest . Showing that the presentation of the image should give you a thoughtful pixelated version of the original. Then you can either be lazy, or simply perform a half-sized rendering of what is already on the screen (so that viewing in real time for the first time, viewing the image afterwards) or adapt the code not for rendering from the main window, but rather from viewing the nominated view and redraw from the original view hierarchy as needed (which will work if you want to do something else, except that divide the scale by an integer).
Tommy source share