Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
79 lines (62 sloc) 3.11 KB
//
// SimpleKML_UIImage.m
//
// Created by Justin R. Miller on 7/1/10.
// Copyright 2010, Code Sorcery Workshop, LLC and Development Seed, Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
//
// * Neither the names of Code Sorcery Workshop, LLC or Development Seed,
// Inc., nor the names of its contributors may be used to endorse or
// promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
#import "SimpleKML_UIImage.h"
@implementation UIImage (SimpleKML_UIImage)
- (UIImage *)imageWithWidth:(CGFloat)width height:(CGFloat)height
{
CGImageRef imageRef = [self CGImage];
CGImageAlphaInfo alphaInfo = kCGImageAlphaPremultipliedLast;
CGContextRef bitmap = CGBitmapContextCreate(NULL,
round(width),
round(height),
CGImageGetBitsPerComponent(imageRef),
4 * round(width),
CGImageGetColorSpace(imageRef),
alphaInfo);
CGContextDrawImage(bitmap, CGRectMake(0, 0, round(width), round(height)), imageRef);
CGImageRef newImageRef = CGBitmapContextCreateImage(bitmap);
UIImage *result = [UIImage imageWithCGImage:newImageRef];
CGContextRelease(bitmap);
CGImageRelease(newImageRef);
return result;
}
- (UIImage *)imageWithAlphaComponent:(CGFloat)alpha
{
UIGraphicsBeginImageContext(self.size);
[self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height) blendMode:kCGBlendModeNormal alpha:alpha];
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}
@end