Resizing UIImage on iOS should be simple. This category provides a simple, yet flexible syntax to resize any image to your needs.
- (UIImage *) resizedImageByMagick: (NSString *) spec;
where spec could be one of the following expressions (follows ImageMagick syntax conventions):
- [width] -- resize by width, height automatically selected to preserve aspect ratio.
- x[height] -- resize by height, width automagically selected to preserve aspect ratio.
- [width]x[height] -- maximum values of height and width given, aspect ratio preserved.
- [width]x[height]^ -- minimum values of height and width given, aspect ratio preserved.
- [width]x[height]! -- width and height emphatically given, original aspect ratio ignored.
- [width]x[height]# -- scale and crop to exactly that size, original aspect ratio preserved (you probably want this one for your thumbnails).
Example:
UIImage* resizedImage = [image resizedImageByMagick: @"320x320#"];
CocoaPods is a dependency manager for Objective-C, which automates and simplifies the process of using 3rd-party libraries in your projects. See the "Getting Started" guide for more information.
pod "UIImage-ResizeMagick"
There is some support for orientations (not mirrored still). There is no support for scale (do we need it?), so please define pixel values.
The project uses ARC, so you should compile UIImage-Resize.m with -fobjc-arc
if your project is not using ARC.
If you need some resizing with data known on-the-fly, this category defines the following additional methods:
- (UIImage *) resizedImageByWidth: (NSUInteger) width;
- (UIImage *) resizedImageByHeight: (NSUInteger) height;
- (UIImage *) resizedImageWithMaximumSize: (CGSize) size;
- (UIImage *) resizedImageWithMinimumSize: (CGSize) size;
For smooth images try following methods:
+ (void) setInterpolationQuality: (CGInterpolationQuality) quality;
+ (CGInterpolationQuality) interpolationQuality;
More information about this option here: https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGContext/#//apple_ref/c/tdef/CGInterpolationQuality
If you find UIImage-ResizeMagick useful, I'm accepting Bitcoin donations (who doesn't these days?) at 193bEkLP7zMrNLZm9UdUet4puGD5mQiLai