gpt4 book ai didi

ios - iOS CGContext Edge没有抗锯齿

转载 作者:行者123 更新时间:2023-12-01 22:29:57 27 4
gpt4 key购买 nike

我正在尝试绘制一个15度角的矩形,该矩形在中心向下分割两种颜色,但是它们之间的线是像素化的。我尝试了不同的混合选项,但似乎无法弄清楚如何使其看起来更干净。

This is what the header looks like now

有谁知道我怎样才能使他们之间的界限看起来干净?

if (!_backgroundImageView.image) {
CGFloat width = CGRectGetWidth(self.bounds);
CGFloat height = CGRectGetHeight(self.bounds);
CGFloat tWidth = 0.26794919243f/*tan(15 degrees)*/ * height;

UIGraphicsBeginImageContext(CGSizeMake(width, height));
CGContextRef context = UIGraphicsGetCurrentContext();

if (_color1) {
CGContextSetFillColorWithColor(context, _color1.CGColor);
CGContextMoveToPoint(context, 0, 0);
CGContextAddLineToPoint(context, 1.0f + RoundPixelValue((width + tWidth) / 2.0f), 0);
CGContextAddLineToPoint(context, 1.0f + RoundPixelValue((width - tWidth) / 2.0f), height);
CGContextAddLineToPoint(context, 0, height);
CGContextFillPath(context);
}

if (_color2) {
CGContextSetFillColorWithColor(context, _color2.CGColor);
CGContextMoveToPoint(context, width, 0);
CGContextAddLineToPoint(context, RoundPixelValue((width + tWidth) / 2.0f) - 1.0f, 0);
CGContextAddLineToPoint(context, RoundPixelValue((width - tWidth) / 2.0f) - 1.0f, height);
CGContextAddLineToPoint(context, width, height);
CGContextFillPath(context);
}

_backgroundImageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}

最佳答案

这里的主要问题是您没有以正确的比例创建上下文。

不要像这样使用UIGraphicsBeginImageContext来使用UIGraphicsBeginImageContextWithOptions:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(width, height), YES, 0);

将比例尺指定为0会将其设置为设备屏幕的比例因子。

这应该消除了大多数混淆现象。

关于ios - iOS CGContext Edge没有抗锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35213703/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com