iOSアイコンのリサイズを半自動化 | MIU-SOFT

iOSアイコンのリサイズを半自動化

iOSアプリのアイコンは、サイズ違いで数十種類用意する必要があります。それらを半自動的に生成する方法です。 (2013-09-14)
以下はアイコンをリサイズするMac OS X用ソースコードです。
XCodeでOS X Application > Command Line Tool の新規プロジェクトを作成(typeはFoundation)して、main.mを上書きしてください。
※FrameworksにAppKit.frameworkも追加してください。
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        int orgSize = 1024;
        int sizes[] = {29, 40, 50, 57, 58, 72, 76, 80, 100, 114, 120, 144, 152, 512, 1024};
        int count = 15;

        // Input icon path
        // ex. /Users/koki/Desktop/icons/icon_1024.png
        printf("Enter original icon path...\n");
        char buf[1024];
        scanf("%s", buf);
        NSString *file = [NSString stringWithCString:buf encoding:NSUTF8StringEncoding];
        NSImage *orgImg = [[NSImage alloc] initWithContentsOfFile:file];
        if (!orgImg) {
            return 1;
        }
        NSRect orgImgRect = NSMakeRect(0, 0, orgSize, orgSize);
        NSString *dir = [file stringByDeletingLastPathComponent];
        NSDictionary *prop = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], NSImageInterlaced, nil];

        for (int i = 0; i < count; i++) {
            NSImage *newImg = [[NSImage alloc] initWithSize:NSMakeSize(sizes[i], sizes[i])];
            NSRect newImgRect = NSMakeRect(0, 0, sizes[i], sizes[i]);
            [newImg lockFocus];
            [orgImg drawInRect:newImgRect fromRect:orgImgRect operation:NSCompositeSourceOver fraction:1];
            [newImg unlockFocus];

            NSData *data = [newImg TIFFRepresentation];
            NSBitmapImageRep *bir = [NSBitmapImageRep imageRepWithData:data];
            data = [bir representationUsingType:NSPNGFileType properties:prop];
            [data writeToFile:[NSString stringWithFormat:@"%@/icon_%d.png", dir, sizes[i]] atomically:YES];
        }
    }
    return 0;
}

コマンドラインの使用方法

XCodeで実行(Run)したあと、元のアイコン画像(1024x1024)のパスをXCodeのコンソールに入力すれば、同じディレクトリにサイズ違いのPNGファイルが作成されます。
元アイコン画像のサイズや、出力アイコンのサイズ(複数)は、orgSize、sizes[]変数に設定してください。
ex.
Enter original icon path...
/Users/koki/Desktop/icons/icon_1024.png
Program ended with exit code: 0

PR (iPhone App)

出産予定日
出産予定日と妊娠期間を確認できるアプリです。
App Storeで見る
月齢通知
毎月、登録されている乳幼児の月齢日を通知してくれるアプリです。
App Storeで見る
陣痛ログ
陣痛の時間を記録・間隔を計算してくれるアプリです。
App Storeで見る