1

次のコードを境界線で使用して楕円を描画しました。CGContextDrawImageメソッドを使用すると、境界線が取得されず、画像が楕円形として表示されます。そうでなければ、この楕円の境界線を取得しました。実際には、楕円形と境界線のある画像を取得したいと考えています。私はこれらのうちの1つだけを手に入れました。両方手に入れたい。

- (void)drawRect:(CGRect)rect
{
     // Drawing code
    context =UIGraphicsGetCurrentContext();
CGContextClearRect(context, self.bounds);
 CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 5.0);
 CGContextAddEllipseInRect(context, self.bounds);

CGContextClip(context);
CGContextStrokePath(context);
     CGContextDrawImage(context, displayImageView.frame, displayImageView.image.CGImage);

}

編集:

次の画像のように問題を解決するにはどうすればよいですか
ここに画像の説明を入力

上記のビューには、白いカラー ボーダーのイメージがあります。私はこのように正確にしたい。どなたか教えてください。

4

1 に答える 1

3

CGContextClip現在のパスもリセットします。

新しいクリッピング パスを決定した後、関数はコンテキストの現在のパスを空のパスにリセットします。

これを行う:

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, self.bounds);
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 5.0);
CGContextAddEllipseInRect(context, self.bounds);

CGContextClip(context);
CGContextDrawImage(context, displayImageView.frame, displayImageView.image.CGImage);
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 5.0);
CGContextAddEllipseInRect(context, self.bounds);
CGContextStrokePath(context);
于 2013-06-07T08:44:21.087 に答える