That said, after you see the three pretty jpeg images in the project,
you lift up the covers and find approx 800 pre-tiles png files - its the
pretiling of the jpegs that makes this project work.
So, I've taken that project and greatly enhanced it:
https://github.com/dhoerl/PhotoScrollerNetwork
This project has two targets and offers several technologies:
1) Tiling
The code takes a jpeg image, decompresses it into a mapped file,
rearranges the bits for efficient tiling, then shrinks it by half,
recreating a smaller files etc etc. You can specify the number of
levels. This would be useful for camera images or other images in your
bundle.
When the view needs a tile the code maps just the bits needed and does
one memcpy.
2) Concurrent Downloading
Using concurrent NSOperations (based on another of my open source
projects), it downloads the same three image from DropBox, then tiles as
above.
3) By incorporating the open source libjpeg-turbo library (which uses
the NEON SIMD unit in the arm chips), it can incrementally decode images
as they download, so that when each image is completely received it's
already decoded.
The primary view lets you select on-disk or network, and the turbo
target lets you choose the decoding method: CGContextDrawImage,
libjpeg-turbo (instead of CGContextDrawImage), and incremental (which
uses libjpeg-turbo).
The incremental decoding lops about a second off the final image
processing on the three sample images (when downloaded and decoded
concurrently). It would be even more impressive if you only download and
decode one image.
See the project page README for more detailed information.
LICENSE is BSD, no attribution required.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartz-dev mailing list (Quart...@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/quartz-dev/quartz-dev-garchive-50095%40googlegroups.com
This email sent to quartz-dev-g...@googlegroups.com