CoreGraphics рисует изображение на белом холсте

У меня есть исходное изображение с переменной шириной и высотой, которое я должен показать на полноэкранном iPad UIImageView, но с добавлением границ вокруг самого изображения. Итак, моя задача — создать новое изображение с белой рамкой вокруг него, но не перекрывающее само изображение. В настоящее время я делаю это с перекрытием с помощью этого кода:

- (UIImage*)imageWithBorderFromImage:(UIImage*)source
{
  CGSize size = [source size];
  UIGraphicsBeginImageContext(size);
  CGRect rect = CGRectMake(0, 0, size.width, size.height);
  [source drawInRect:rect blendMode:kCGBlendModeNormal alpha:1.0];

  CGContextRef context = UIGraphicsGetCurrentContext();
  CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0);
  CGContextSetLineWidth(context, 40.0);
  CGContextStrokeRect(context, rect);
  UIImage *testImg =  UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  return testImg;
}

Кто-нибудь может сказать мне, как мне сначала нарисовать белый холст, который на 40 пикселей больше в каждом направлении, чем исходное изображение, а затем нарисовать на нем это изображение?

6
задан Eugene 5 June 2012 в 09:43
поделиться