UIImageの連結
UIImageを横に連結して新しいUIImageを作るメソッドを作りました。
といってもほとんどこちらのサイト様のコピペです。
→ UIImageの合成 – Horigoodの日記 – iPhoneアプリ開発グループ
コピペで動かなかった部分は書き換えています。
+ (UIImage *)concatImages:(UIImage *)imgA :(UIImage *)imgB
{
int widthA = CGImageGetWidth(imgA.CGImage);
int widthB = CGImageGetWidth(imgB.CGImage);
int height = CGImageGetHeight(imgA.CGImage);
int widthC = widthA + widthB;
unsigned char *bitmap = calloc(widthC * height * 4, sizeof(unsigned char));
CGContextRef bitmapContext = CGBitmapContextCreate(bitmap,
widthC,
height,
8,
widthC * 4,
CGColorSpaceCreateDeviceRGB(),
kCGImageAlphaPremultipliedFirst);
//imgAをbitmapContextに描画
CGContextDrawImage(bitmapContext, CGRectMake(0, 0, widthA, height), imgA.CGImage);
//imgBをimgAの隣に描画
CGContextDrawImage(bitmapContext, CGRectMake(widthA, 0, widthB, height), imgB.CGImage);
//CGContextからCGImageを作成
CGImageRef imgRef = CGBitmapContextCreateImage (bitmapContext);
//CGImageからUIImageを作成
UIImage *imgC = [UIImage imageWithCGImage:imgRef];
//bitmapを解放
free(bitmap);
return imgC;
}
大部分がコピペなのできちんと理解できているか不安です。
間違いとかに気づかれた方いらっしゃいましたらコメントお願いします。