blob: 16c10ff028710b70e7f235d7662b8a00e3e21087 [file] [log] [blame]
Alexandre Lision261f1b92016-04-04 12:35:34 -04001/*
2 * Copyright (C) 2016 Savoir-faire Linux Inc.
3 * Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19
20#import "NSImage+Extensions.h"
21
22@implementation NSImage (Extensions)
23
24+ (NSImage *)imageResize:(NSImage*)anImage
25 newSize:(NSSize)newSize
26{
27 auto sourceImage = anImage;
28 // Report an error if the source isn't a valid image
29 if (![sourceImage isValid]) {
30 NSLog(@"Invalid Image");
31 } else {
32 auto smallImage = [[NSImage alloc] initWithSize: newSize];
33 [smallImage lockFocus];
34 [sourceImage setSize: newSize];
35 [[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];
36 [sourceImage drawAtPoint:NSZeroPoint fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.];
37 [smallImage unlockFocus];
38 return smallImage;
39 }
40 return nil;
41}
42
43@end