私は640x480ピクセルのイメージを持っています。私はそれを596x596ピクセルのUIImageにトリミングして配置する必要があります。空のスペースは黒色でなければなりません(画像の上下は黒色でなければなりません)。今、私は iOSのCGContextで黒い空白を表示するには
...このよう
-(UIImage*)cropImage:(UIImage *)theImage toFitSize:(CGSize)theSize
{
CGFloat CROP_X = floorf((theImage.size.width-theSize.width)/2);
CGFloat CROP_Y = floorf((theImage.size.height-theSize.height)/2);
CGRect imageRect = CGRectMake(CROP_X, CROP_Y, theSize.width, theSize.height);
UIGraphicsBeginImageContext(imageRect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 0, 0, 0, 1);
CGRect drawRect = CGRectMake(-imageRect.origin.x, -imageRect.origin.y, theImage.size.width, theImage.size.height);
CGContextClipToRect(context, CGRectMake(0, 0, imageRect.size.width, imageRect.size.height));
[theImage drawInRect:drawRect];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return finalImage;
}
それをトリミングしていると私も
- (UIImage *)croppedImage:(CGRect)bounds
{
CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], bounds);
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return croppedImage;
}
を試みたが、何もない空間が透明として出てきます。私はこれをどのようにして行うのですか?
おかげ
素晴らしいたいとサイズを変更です!私は、イメージを網膜のサイズとして保存するのでcontentModeをUIViewContentModeScaleAspectFitに変更しましたが、通常のサイズで表示します。ありがとう! –